Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Blocca un thread e imposta un valore massimo in cui il thread sblocca.
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);
Parametri
Lck
Un oggetto mutex.Abs_time
Un oggetto chrono::time_point.Pred
Qualsiasi espressione che restituisca true o false.
Valore restituito
Metodi che restituiscono un valore cv_status::timeout del tipo cv_status se l'attesa termina quando Abs_time trascorre.In caso contrario, i metodi cv_status::no_timeoutrestituita.
Metodi che restituiscono un valore bool il valore Pred.
Note
I primi blocchi di metodo all'oggetto condition_variable viene segnalato da una chiamata a notify_one o a notify_all, o fino a Abs_time.Può inoltre svegliare spurio.
Il secondo metodo in effetti esegue il codice seguente.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
Il terzo e il quarto metodi utilizzano un puntatore a un oggetto di tipo xtime per sostituire l'oggetto chrono::time_point.L'oggetto xtime specifica il tempo massimo di attesa un segnale.
Requisiti
intestazione: condition_variable
Spazio dei nomi: deviazione standard