std::condition_variable_any
<condition_variable>
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.
[edit] Member functions
Notification
Waiting
(public member function) [edit]
(public member function) [edit]
[edit] 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]
[edit] See also
[edit] External links
- ↑ Anthony Williams (2012, 1st ed./ 2019, 2nd ed.), "C++ Concurrency in Action", 9.2.4 "Interrupting a wait on
std::condition_variable_any
".