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
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
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
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
(C++11)
|
provides a condition variable associated with a
std::unique_lock
(class) |
External links
|