Metoda condition_variable::wait_until
Blokuje vlákno a nastaví maximální bod v čase, kdy je podproces odblokuje.
template<
class Clock,
class Duration
>
cv_status wait_until(
unique_lock<mutex>& Lck,
const chrono::time_point<Clock,
Duration>& Abs_time
);
template<
class Clock,
class Duration,
class Predicate
>
bool wait_until(
unique_lock<mutex>& Lck,
const chrono::time_point<Clock,
Duration>& Abs_time,
Predicate Pred
);
cv_status wait_until(
unique_lock<mutex>& Lck,
const xtime *Abs_time
);
template<class Predicate>
bool wait_until(
unique_lock<mutex>& Lck,
const xtime *Abs_time,
Predicate Pred
);
Parametry
Lck
Objekt unique_lock<mutex>.Abs_time
Objekt chrono::time_point.Pred
Jakýkoli výraz, který vrací true nebo false.
Vrácená hodnota
Metody, které vracejí cv_status zadejte návrat cv_status::timeout Pokud ukončí čekání při Abs_time uplyne.Jinak vrácení metody cv_status::no_timeout.
Metody, které vracejí bool hodnotu Pred.
Poznámky
První metoda blokuje až condition_variable objektu je signalizováno následným tichem voláním notify_one nebo notify_all nebo dokud Abs_time.Je možné také probuzení spuriously.
Druhá metoda účinně provede následující kód.
while(!Pred())
if(wait_until(Lck, Abs_time) == cv_status::timeout)
return Pred();
return true;
Pomocí metody třetí a čtvrté ukazatel na objekt typu xtime nahradit chrono::time_point objektu.xtime Objektu určuje maximální dobu čekání na signál.
Požadavky
Záhlaví: condition_variable
Obor názvů: std