table of contents
std::condition_variable_any(3) | C++ Standard Libary | std::condition_variable_any(3) |
NAME¶
std::condition_variable_any - std::condition_variable_any
Synopsis¶
Defined in header <condition_variable>
class condition_variable_any; (since C++11)
The condition_variable_any class is a generalization of
std::condition_variable.
Whereas std::condition_variable works only on
std::unique_lock<std::mutex>,
condition_variable_any can operate on any lock that meets the BasicLockable
requirements.
See std::condition_variable for the description of the semantics of condition
variables.
The class std::condition_variable_any is a StandardLayoutType. It is not
CopyConstructible, MoveConstructible, CopyAssignable, or MoveAssignable.
If the lock is std::unique_lock<std::mutex>, std::condition_variable
may provide
better performance.
Member functions¶
constructor constructs the object
(public member function)
destructor destructs the object
(public member function)
operator= not copy-assignable
[deleted] (public member function)
Notification¶
notify_one notifies one waiting thread
(public member function)
notify_all notifies all waiting threads
(public member function)
Waiting¶
wait blocks the current thread until the condition variable is
awakened
(public member function)
blocks the current thread until the condition variable is awakened or
wait_for after the specified timeout duration
(public member function)
blocks the current thread until the condition variable is awakened or
wait_until until specified time point has been reached
(public member function)
Notes¶
std::condition_variable_any can be used with std::shared_lock in
order to wait on a
std::shared_mutex in shared ownership mode.
A possible use for std::condition_variable_any with custom Lockable types is
to
provide convenient interruptible waits: the custom lock operation would both
lock
the associated mutex as expected, and also perform the necessary setup to
notify
this condition variable when the interrupting signal is received.^[1]
See also¶
condition_variable provides a condition variable associated with
a std::unique_lock
(C++11) (class)
External links¶
1. ↑ Anthony Williams (2012, 1st ed./ 2019, 2nd ed.),
“C++ Concurrency in Action”,
9.2.4 “Interrupting a wait on std::condition_variable_any”.
2024.06.10 | http://cppreference.com |