void wait(unique_lock<mutex>& lock);
[..]9 Requires:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread, and either
- no other thread is waiting on this
condition_variable
object orlock.mutex()
returns the same value for each of thelock
arguments supplied by all concurrently waiting (viawait
ortimed_wait
) threads.
[..]11 Postcondition:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread.
template <class Predicate> void wait(unique_lock<mutex>& lock, Predicate pred);
?? Requires:
lock.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread, and either
- no other thread is waiting on this
condition_variable
object orlock.mutex()
returns the same value for each of thelock
arguments supplied by all concurrently waiting (viawait
ortimed_wait
) threads.
14 Effects:
while (!pred()) wait(lock);
?? Postcondition:
lock.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread.
?? Throws:
std::system_error
when an exception is required (30.2.2).
?? Error conditions:
- equivalent error condition from
lock.lock()
orlock.unlock()
.
template <class Clock, class Duration> cv_status wait_until(unique_lock<mutex>& lock, const chrono::time_point<Clock, Duration>& abs_time);
15 Requires:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread, and either
- no other thread is waiting on this
condition_variable
object orlock.mutex()
returns the same value for each of thelock
arguments supplied by all concurrently waiting (viawait
,wait_for
, orwait_until
) threads.
[..]
[..]17 Postcondition:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread.
20 Error conditions:
operation_not_permitted
— if the thread does not own the lock.- equivalent error condition from
lock.lock()
orlock.unlock()
.
template <class Rep, class Period> cv_status wait_for(unique_lock<mutex>& lock, const chrono::duration<Rep, Period>& rel_time);
21 Requires:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread, and either
- no other thread is waiting on this
condition_variable
object orlock.mutex()
returns the same value for each of thelock
arguments supplied by all concurrently waiting (viawait
,wait_for
, orwait_until
) threads.
[..]
[..]24 Postcondition:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread.
26 Error conditions:
operation_not_permitted
— if the thread does not own the lock.- equivalent error condition from
lock.lock()
orlock.unlock()
.
template <class Clock, class Duration, class Predicate> bool wait_until(unique_lock<mutex>& lock, const chrono::time_point<Clock, Duration>& abs_time, Predicate pred);
?? Requires:
lock.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread, and either
- no other thread is waiting on this
condition_variable
object orlock.mutex()
returns the same value for each of thelock
arguments supplied by all concurrently waiting (viawait
ortimed_wait
) threads.
27 Effects:
while (!pred()) if (wait_until(lock, abs_time) == cv_status::timeout) return pred(); return true;
28 Returns:
pred()
?? Postcondition:
lock.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread.
29 [ Note: The returned value indicates whether the predicate evaluates to true regardless of whether the timeout was triggered. — end note ]
?? Throws:
std::system_error
when an exception is required (30.2.2).
?? Error conditions:
- equivalent error condition from
lock.lock()
orlock.unlock()
.
template <class Rep, class Period, class Predicate> bool wait_for(unique_lock<mutex>& lock, const chrono::duration<Rep, Period>& rel_time, Predicate pred);
30 Requires:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread, and either
- no other thread is waiting on this
condition_variable
object orlock.mutex()
returns the same value for each of thelock
arguments supplied by all concurrently waiting (viawait
,wait_for
, orwait_until
) threads.
[..]
33 Postcondition:
lock
.owns_lock()
istrue
andlock.mutex()
is locked by the calling thread.
[..]
37 Error conditions:
operation_not_permitted
— if the thread does not own the lock.- equivalent error condition from
lock.lock()
orlock.unlock()
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4