Metoda condition_variable::wait_for
Blokuje vlákno a nastaví časový interval, po kterém odblokuje podprocesu.
template<
class Rep,
class Period
>
cv_status wait_for(
unique_lock<mutex>& Lck,
const chrono::duration<Rep,
Period>& Rel_time
);
template<
class Rep,
class Period,
class Predicate
>
bool wait_for(
unique_lock<mutex>& Lck,
const chrono::duration<Rep,
Period>& Rel_time,
PredicatePred
);
Parametry
Lck
Objekt unique_lock<mutex>.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 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 účinně 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