std::shared_future<T>:: wait_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Getting the result | ||||
| State | ||||
|
shared_future::wait_until
|
|
template
<
class
Clock,
class
Duration
>
std:: future_status wait_until ( const std:: chrono :: time_point < Clock,Duration > & timeout_time ) const ; |
(seit C++11) | |
wait_until
wartet darauf, dass ein Ergebnis verfügbar wird. Es blockiert, bis der angegebene
timeout_time
erreicht wurde oder das Ergebnis verfügbar wird, je nachdem, was zuerst eintritt. Der Rückgabewert gibt an, warum
wait_until
zurückgekehrt ist.
Wenn die Zukunft das Ergebnis eines Aufrufs von async mit verzögerter Auswertung ist, kehrt diese Funktion sofort zurück, ohne zu warten.
Das Verhalten ist undefiniert, falls
valid()
vor dem Aufruf dieser Funktion
false
ist, oder
Clock
nicht den
Clock
Anforderungen entspricht.
Das Programm ist fehlerhaft, falls
std::
chrono
::
is_clock_v
<
Clock
>
den Wert
false
hat.
(seit C++20)
Inhaltsverzeichnis |
Parameter
| timeout_time | - | maximaler Zeitpunkt, bis zu dem blockiert wird |
Rückgabewert
| Konstante | Erklärung |
| future_status::deferred | Der gemeinsame Zustand enthält eine verzögerte Funktion mit verzögerter Auswertung, sodass das Ergebnis nur bei expliziter Anforderung berechnet wird |
| future_status::ready | Das Ergebnis ist bereit |
| future_status::timeout | Das Zeitlimit ist abgelaufen |
Ausnahmen
Jede Ausnahme, die von clock, time_point oder duration während der Ausführung geworfen wird (von der Standardbibliothek bereitgestellte Uhren, Zeitpunkte und Dauern werfen niemals).
Hinweise
Die Implementierungen sind angehalten, den Fall zu erkennen, wenn valid ( ) == false vor dem Aufruf und eine std::future_error mit einem Fehlerzustand von future_errc::no_state zu werfen.
Die Norm empfiehlt, dass die an
timeout_time
gebundene Uhr zur Zeitmessung verwendet wird; diese Uhr muss kein monotones Zeitgeber sein. Es gibt keine Garantien bezüglich des Verhaltens dieser Funktion, wenn die Uhr diskontinuierlich angepasst wird, aber die bestehenden Implementierungen konvertieren
timeout_time
von
Clock
zu
std::chrono::system_clock
und delegieren an POSIX
pthread_cond_timedwait
, sodass das Warten Anpassungen der Systemuhr berücksichtigt, nicht jedoch die benutzerdefinierte
Clock
. In jedem Fall kann die Funktion auch länger warten, als bis
timeout_time
erreicht wurde, aufgrund von Planungs- oder Ressourcenkonflikten.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
wartet bis das Ergebnis verfügbar ist
(öffentliche Elementfunktion) |
|
|
wartet auf das Ergebnis, kehrt zurück wenn es für die angegebene Timeout-Dauer nicht verfügbar ist
(öffentliche Elementfunktion) |