condition_variable_any::wait_for – metoda
Blokuje vlákno a nastavuje časový interval, po kterém se vlákno odblokuje.
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
);
Parametry
Lck
Objekt mutex libovolného typu.Rel_time
Objekt chrono::duration, který určuje dobu před probuzením podprocesu.Pred
Libovolný výraz, který vrací true nebo false.
Vrácená hodnota
První metoda vrátí cv_status::timeout, pokud čekání skončí, když uplyne Rel_time.V opačném případě vrátí metody cv_status::no_timeout.
Druhá metoda vrací hodnotu Pred.
Poznámky
První metoda blokuje, dokud objekt condition_variable_any není signalizován voláním notify_one nebo notify_all nebo dokud neuběhl časový interval Rel_time.Může se také probudit falešně.
Druhá metoda ve skutečnosti spustí následující kód.
while(!Pred())
if(wait_for(Lck, Rel_time) == cv_status::timeout)
return Pred();
return true;
Požadavky
Záhlaví: condition_variable
Obor názvů: std