método de condition_variable_any::wait_until
Bloquea un subproceso, y establezca un punto máximo a tiempo en el que desbloquea el subproceso.
template<class Lock, class Clock, class Duration>
void wait_until(
Lock& Lck,
const chrono::time_point<Clock, Duration>& Abs_time);
template<class Lock, class Clock, class Duration, class Predicate>
void wait_until(
Lock& Lck,
const chrono::time_point<Clock, Duration>& Abs_time,
Predicate Pred);
template<class Lock>
void wait_until(
Lock Lck,
const xtime *Abs_time);
template<class Lock, class Predicate>
void wait_until(
Lock Lck,
const xtime *Abs_time,
Predicate Pred);
Parámetros
Lck
Un objeto mutex.Abs_time
Un objeto de chrono::time_point .Pred
Cualquier expresión que devuelve true o false.
Valor devuelto
Métodos que devuelven un retorno cv_status::timeout del tipo de cv_status si espera termina cuando transcurre Abs_time .Si no, los métodos cv_status::no_timeoutreturn.
Métodos que devuelven un retorno de bool 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 a notify_all, o hasta Abs_time.También puede despertar false.
El segundo método en efecto ejecuta el código siguiente.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
Los proveedores y cuartos métodos utilizan un puntero a un objeto de xtime escrito para reemplazar el objeto de chrono::time_point .El objeto de xtime especifica el tiempo máximo para esperar una señal.
Requisitos
encabezado: condition_variable
espacio de nombres: std