Partilhar via


Método CONDITION_VARIABLE::wait_until

Bloquear um segmento, e defina um máximo ponto no tempo em que o segmento desbloqueia.

template<
   class Clock,
   class Duration
>
cv_status wait_until(
   unique_lock<mutex>& Lck,
   const chrono::time_point<Clock,
   Duration>& Abs_time
);
template<
   class Clock,
   class Duration,
   class Predicate
>
bool wait_until(
   unique_lock<mutex>& Lck,
   const chrono::time_point<Clock,
   Duration>& Abs_time,
   Predicate Pred
);
cv_status wait_until(
   unique_lock<mutex>& Lck,
   const xtime *Abs_time
);
template<class Predicate>
bool wait_until(
   unique_lock<mutex>& Lck,
   const xtime *Abs_time,
   Predicate Pred
);

Parâmetros

  • Lck
    Um objeto de unique_lock<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 efetivamente executa 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

Consulte também

Referência

Classe CONDITION_VARIABLE

<condition_variable>