Método condition_variable_any::wait_for
Bloquear um segmento, e defina um intervalo de tempo depois do que o segmento desbloqueia.
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 de mutex de qualquer tipo.Rel_time
Um objeto de chrono::duration que especifica a quantidade de tempo antes que o segmento acordar.Pred
Qualquer expressão que retorna true ou false.
Valor de retorno
O primeiro método retorna se a cv_status::timeout espera termina quando Rel_time passados.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étodo ao objeto de condition_variable_any são sinalizados por uma chamada a notify_one ou a notify_all, ou até o intervalo de tempo Rel_time passados.Também pode spuriously acordar.
O segundo método executa aplicado 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
namespace: STD