Metoda condition_variable_any::wait_for
Blokuje wątku i ustawia interwał czasu, po którym odblokowuje wątku.
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 obiektu dowolnego typu.Rel_time
A chrono::duration budzi obiekt, który określa czas, zanim wątek.Pred
Wyrażenie zwraca true lub false.
Wartość zwracana
Pierwsza metoda zwraca cv_status::timeout Jeśli oczekiwania kończy, gdy Rel_time upłynął.W przeciwnym razie zwraca metodę cv_status::no_timeout.
Druga metoda zwraca wartość Pred.
Uwagi
Pierwsza metoda blokuje aż do condition_variable_any obiektu jest sygnalizowane przez wywołanie notify_one lub notify_all, aż interwał czasu lub Rel_time upłynął.To może również wake up spuriously.
Druga metoda obowiązują wykonuje następujący kod.
while(!Pred())
if(wait_for(Lck, Rel_time) == cv_status::timeout)
return Pred();
return true;
Wymagania
Nagłówek: condition_variable
Obszar nazw: std