Método condition_variable_any::wait_until
Bloquear um segmento, e defina um máximo ponto no tempo em que o segmento desbloqueia.
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);
Parâmetros
Lck
Um objeto mutex.Abs_time
Um objeto de chrono::time_point .Pred
Qualquer expressão que retorna true ou false.
Valor de retorno
Métodos que retornam um retorno cv_status::timeout do tipo de cv_status se a espera termina quando Abs_time decorrer.Caso contrário, os métodos cv_status::no_timeoutde retorno.
Métodos que retornam um retorno de bool o valor de Pred.
Comentários
Os primeiros blocos de método ao objeto de condition_variable são sinalizados por uma chamada a notify_one ou a notify_all, ou até Abs_time.Também pode spuriously acordar.
O segundo método executa aplicado o código a seguir.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
A terceira e quarta métodos usam um ponteiro para um objeto do tipo xtime para substituir o objeto de chrono::time_point .O objeto de xtime especifica a quantidade de tempo máximo para aguardar um sinal.
Requisitos
Cabeçalho: condition_variable
namespace: STD