método de condition_variable::wait_for
Bloquea un subproceso, y establece un intervalo de tiempo después del cual el subproceso se desbloquea.
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
Un objeto unique_lock<mutex>.Rel_time
Un objeto de chrono::duration que especifica la cantidad de tiempo antes de que el subproceso despierte.Pred
Cualquier expresión que devuelve true o false.
Valor devuelto
El primer método devuelve cv_status::timeout si espera termina cuando ha transcurrido Rel_time .De lo contrario, el método devuelve cv_status::no_timeout.
El segundo método devuelve el valor de Pred.
Comentarios
Los primeros bloques de método hasta el objeto de condition_variable son devueltos por una llamada a notify_one o notify_all o hasta el intervalo de tiempo Rel_time ha transcurrido.También puede despertar false.
El segundo método ejecuta eficazmente el código siguiente.
while(!Pred())
if(wait_for(Lck, Rel_time) == cv_status::timeout)
return Pred();
return true;
Requisitos
encabezado: condition_variable
espacio de nombres: std