condition_variable_any::wait_for, méthode
Bloque un thread, et définit un intervalle de temps après lequel le thread se débloque.
template<
class Lock,
class Rep,
class Period
>
bool wait_for(
Lock& Lck,
const chrono::duration<Rep,
Period>& Rel_time
);
template<
class Lock,
class Rep,
class Period,
class Predicate
>
bool wait_for(
Lock& Lck,
const chrono::duration<Rep,
Period>& Rel_time,
Predicate Pred
);
Paramètres
Lck
Objet mutex de n'importe quel type.Rel_time
Objet chrono::duration qui spécifie la durée avant que le thread ne s'active.Pred
Toute expression qui retourne true ou false.
Valeur de retour
La première méthode retourne cv_status::timeout si l'attente se termine lorsque Rel_time est écoulé. Sinon, la méthode retourne cv_status::no_timeout.
La seconde méthode retourne la valeur de Pred.
Notes
La première méthode bloque jusqu'à ce que l'objet condition_variable_any soit signalé par un appel à notify_one ou notify_all, ou jusqu'à ce que l'intervalle de temps Rel_time se soit écoulé. Il peut également se réveiller faussement.
La deuxième méthode en vigueur exécute le code suivant.
while(!Pred())
if(wait_for(Lck, Rel_time) == cv_status::timeout)
return Pred();
return true;
Configuration requise
En-tête : condition_variable
Espace de noms : std