méthode de condition_variable::wait_until
Bloque un thread, et définit un maximum moment auquel le thread débloque.
template<
class Clock,
class Duration
>
cv_status wait_until(
unique_lock<mutex>& Lck,
const chrono::time_point<Clock,
Duration>& Abs_time
);
template<
class Clock,
class Duration,
class Predicate
>
bool wait_until(
unique_lock<mutex>& Lck,
const chrono::time_point<Clock,
Duration>& Abs_time,
Predicate Pred
);
cv_status wait_until(
unique_lock<mutex>& Lck,
const xtime *Abs_time
);
template<class Predicate>
bool wait_until(
unique_lock<mutex>& Lck,
const xtime *Abs_time,
Predicate Pred
);
Paramètres
Lck
Objet unique_lock<mutex>.Abs_time
Objet chrono::time_point.Pred
Toute expression qui retourne true ou false.
Valeur de retour
Méthodes qui retournent un type de retour cv_status::timeout d' cv_status si l'attente se termine lorsque Abs_time s'écoule.Sinon, les méthodes cv_status::no_timeoutde retour.
Méthodes qui retournent un retour d' bool la valeur d' Pred.
Notes
Les premiers blocs de méthode jusqu'à l'objet d' condition_variable signalé est par un appel à notify_one ou à notify_all ou jusqu'à Abs_time.Il peut également se réveiller faussement.
La deuxième méthode exécute efficacement le code suivant.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
Le troisième et le quatrième méthodes utilisent un pointeur vers un objet de type xtime pour remplacer l'objet d' chrono::time_point .L'objet d' xtime spécifie la quantité maximale de l'heure d'attendre un signal.
Configuration requise
en-tête : condition_variable
l'espace de noms : DST