Namespaces
Variants

std::shared_future<T>:: wait_until

From cppreference.net

Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
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

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)