Metoda condition_variable_any::wait_until
Blokuje wątku i ustawia maksymalny punkt w czasie, w którym odblokowuje wątku.
template<class Lock, class Clock, class Duration>
void wait_until(
Lock& Lck,
const chrono::time_point<Clock, Duration>& Abs_time);
template<class Lock, class Clock, class Duration, class Predicate>
void wait_until(
Lock& Lck,
const chrono::time_point<Clock, Duration>& Abs_time,
Predicate Pred);
template<class Lock>
void wait_until(
Lock Lck,
const xtime *Abs_time);
template<class Lock, class Predicate>
void wait_until(
Lock Lck,
const xtime *Abs_time,
Predicate Pred);
Parametry
Lck
Obiekt mutex.Abs_time
A chrono::time_point obiektu.Pred
Wyrażenie zwraca true lub false.
Wartość zwracana
Metody, które zwracają cv_status wpisz return cv_status::timeout Jeśli oczekiwania kończy, gdy Abs_time upływa.W przeciwnym razie zwraca metody cv_status::no_timeout.
Metody, które zwracają bool zwraca wartość Pred.
Uwagi
Pierwsza metoda blokuje aż do condition_variable obiektu jest sygnalizowane przez wywołanie notify_one lub notify_all, lub do Abs_time.To może również wake up spuriously.
Druga metoda obowiązują wykonuje następujący kod.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
Trzeci i czwarty metody za pomocą wskaźnika do obiektu typu xtime do zastąpienia chrono::time_point obiektu.xtime Obiektu określa maksymalny czas oczekiwania na sygnał.
Wymagania
Nagłówek: condition_variable
Obszar nazw: std