Metoda condition_variable_any::wait_for
Blokuje vlákno a nastaví časový interval, po kterém odblokuje podprocesu.
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
A mutex libovolného typu objektu.Rel_time
A chrono::duration probouzení objektu, který určuje dobu před podprocesu.Pred
Jakýkoli výraz, který vrací true nebo false.
Vrácená hodnota
První metoda vrátí cv_status::timeout Pokud ukončí čekání při Rel_time uplynula.Jinak vrací metoda cv_status::no_timeout.
Druhá metoda vrátí hodnotu Pred.
Poznámky
První metoda blokuje až condition_variable_any objektu je signalizováno následným tichem voláním notify_one nebo notify_all, nebo dokud časový interval Rel_time uplynula.Je možné také probuzení spuriously.
Druhá metoda v platnosti provede 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