Compartilhar via


Método condition_variable_any::wait_for

Bloqueia um thread e define um intervalo de tempo após o qual o thread é desbloqueado.

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
);

Parâmetros

  • Lck
    Um objeto mutex de qualquer tipo.

  • Rel_time
    Um objeto chrono::duration que especifica o tempo antes do segmento acordar.

  • Pred
    Qualquer expressão que retorna true ou false.

Valor de retorno

O primeiro método retorna cv_status::timeout se a espera terminar depois de decorrido Rel_time. Caso contrário, o método retorna cv_status::no_timeout.

O segundo método retorna o valor de Pred.

Comentários

Os primeiros blocos de métodos até o objeto condition_variable_any ser sinalizado por uma chamada para notify_one ou notify_all ou até o término do intervalo de tempo Rel_time. Também pode ser ativado de forma artificial.

O segundo método em vigor executa o código a seguir.

while(!Pred())
   if(wait_for(Lck, Rel_time) == cv_status::timeout)
      return Pred();
return true;

Requisitos

Cabeçalho: condition_variable

std de Namespace:

Consulte também

Referência

Classe condition_variable_any

<condition_variable>