SDL3pp
A slim C++ wrapper for SDL3
|
A means to block multiple threads until a condition is satisfied. More...
Public Member Functions | |
constexpr | Condition (const ConditionRaw resource) |
Constructs from ConditionParam. More... | |
constexpr | Condition (const Condition &other)=delete |
Copy constructor. | |
constexpr | Condition (Condition &&other) |
Move constructor. | |
constexpr | Condition (const ConditionRef &other)=delete |
constexpr | Condition (ConditionRef &&other)=delete |
Condition () | |
Create a condition variable. More... | |
~Condition () | |
Destructor. | |
Condition & | operator= (Condition other) |
Assignment operator. | |
constexpr ConditionRaw | get () const |
Retrieves underlying ConditionRaw. | |
constexpr ConditionRaw | release () |
Retrieves underlying ConditionRaw and clear this. | |
constexpr auto | operator<=> (const Condition &other) const =default |
Comparison. | |
constexpr bool | operator== (std::nullptr_t _) const |
Comparison. | |
constexpr | operator bool () const |
Converts to bool. | |
constexpr | operator ConditionParam () const |
Converts to ConditionParam. | |
void | Destroy () |
Destroy a condition variable. More... | |
void | Signal () |
Restart one of the threads that are waiting on the condition variable. More... | |
void | Broadcast () |
Restart all threads that are waiting on the condition variable. More... | |
void | Wait (MutexParam mutex) |
Wait until a condition variable is signaled. More... | |
bool | WaitTimeout (MutexParam mutex, std::chrono::milliseconds timeout) |
Wait until a condition variable is signaled or a certain time has passed. More... | |
Condition variables, paired with an Mutex, let an app halt multiple threads until a condition has occurred, at which time the app can release one or all waiting threads.
Wikipedia has a thorough explanation of the concept:
https://en.wikipedia.org/wiki/Condition_variable
|
inlineexplicitconstexpr |
resource | a ConditionRaw to be wrapped. |
This assumes the ownership, call release() if you need to take back.
|
inline |