condition_variable::wait_for-Methode
Blockiert einen Thread und legt ein Zeitintervall fest, nachdem hebt der Thread die Blockierung.
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
);
Parameter
Lck
Ein unique_lock<mutex>-Objekt.Rel_time
Ein chrono::duration-Objekt, das die Dauer angibt, bevor der Thread aufwacht.Pred
Ein beliebiger Ausdruck, der true oder false zurückgibt.
Rückgabewert
Die erste Methode gibt cv_status::timeout zurück, wenn der Wartevorgang wird beendet, wenn Rel_time verstrichen ist.Andernfalls gibt diese Methode cv_status::no_timeout zurück.
Die zweite Methode gibt den Wert aus Pred zurück.
Hinweise
Die ersten Methodenblöcke bis das condition_variable-Objekt wird durch einen Aufruf notify_one signalisiert, oder notify_all oder bis das Zeitintervall Rel_time verstrichen ist.Er kann auch unecht aufwachen.
Die zweite Methode führt für den folgenden Code aus.
while(!Pred())
if(wait_for(Lck, Rel_time) == cv_status::timeout)
return Pred();
return true;
Anforderungen
Header: condition_variable
Namespace: std