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 ; |
(depuis C++11) | |
wait_until
attend qu'un résultat soit disponible. Il se bloque jusqu'à ce que le
timeout_time
spécifié soit atteint ou que le résultat devienne disponible, selon la première éventualité. La valeur de retour indique pourquoi
wait_until
a retourné.
Si le futur est le résultat d'un appel à async qui a utilisé l'évaluation paresseuse, cette fonction retourne immédiatement sans attendre.
Le comportement n'est pas défini si
valid()
est
false
avant l'appel à cette fonction, ou si
Clock
ne satisfait pas aux
exigences Clock
.
Le programme est mal formé si
std::
chrono
::
is_clock_v
<
Clock
>
est
false
.
(depuis C++20)
Table des matières |
Paramètres
| timeout_time | - | point temporel maximum jusqu'auquel bloquer |
Valeur de retour
| Constante | Explication |
| future_status::deferred | L'état partagé contient une fonction différée utilisant l'évaluation paresseuse, donc le résultat sera calculé uniquement lorsqu'il sera explicitement demandé |
| future_status::ready | Le résultat est prêt |
| future_status::timeout | Le délai d'attente a expiré |
Exceptions
Toute exception levée par clock, time_point ou duration durant l'exécution (les horloges, points temporels et durées fournis par la bibliothèque standard ne lèvent jamais d'exception).
Notes
Les implémentations sont encouragées à détecter le cas où valid ( ) == false avant l'appel et à lever une std::future_error avec une condition d'erreur de future_errc::no_state .
La norme recommande que l'horloge associée à
timeout_time
soit utilisée pour mesurer le temps ; cette horloge n'est pas requise d'être une horloge monotone. Il n'y a aucune garantie concernant le comportement de cette fonction si l'horloge est ajustée de manière discontinue, mais les implémentations existantes convertissent
timeout_time
de
Clock
vers
std::chrono::system_clock
et délèguent à
pthread_cond_timedwait
POSIX de sorte que l'attente prenne en compte les ajustements de l'horloge système, mais pas ceux de l'horloge
Clock
fournie par l'utilisateur. Dans tous les cas, la fonction peut également attendre au-delà du moment où
timeout_time
a été atteint en raison de délais d'ordonnancement ou de contention des ressources.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
attend que le résultat soit disponible
(fonction membre publique) |
|
|
attend le résultat, retourne si celui-ci n'est pas disponible après la durée d'attente spécifiée
(fonction membre publique) |