std::condition_variable_any
|
|
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
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
Member functions
constructs the object (public member function) |
|
destructs the object (public member function) |
|
operator= [deleted] |
not copy-assignable (public member function) |
Notification | |
notifies one waiting thread (public member function) |
|
notifies all waiting threads (public member function) |
|
Waiting | |
blocks the current thread until the condition variable is awakened (public member function) |
|
blocks the current thread until the condition variable is awakened or after the specified timeout duration (public member function) |
|
blocks the current thread until the condition variable is awakened or 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
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
(C++11)
|
provides a condition variable associated with a std::unique_lock (class) |
External links
|