Método condition_variable::wait_for
Bloqueia um thread e define um intervalo de tempo após o qual o thread é desbloqueado.
template<
class Rep,
class Period
>
cv_status wait_for(
unique_lock<mutex>& Lck,
const chrono::duration<Rep,
Period>& Rel_time
);
template<
class Rep,
class Period,
class Predicate
>
bool wait_for(
unique_lock<mutex>& Lck,
const chrono::duration<Rep,
Period>& Rel_time,
PredicatePred
);
Parâmetros
Lck
Um objeto unique_lock<mutex>.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 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.
Aplicado, o segundo método executa o seguinte código.
while(!Pred())
if(wait_for(Lck, Rel_time) == cv_status::timeout)
return Pred();
return true;
Requisitos
Cabeçalho: condition_variable
std de Namespace: