MLIB
|
Events have only two states: signaled and not signaled. More...
Public Member Functions | |
event (bool manual, bool signaled=false, const std::string &name=std::string()) | |
Constructor for event objects. | |
void | signal () |
Set event to signaled state. | |
void | pulse () |
Pulse event so that only one waiting thread is released. | |
void | reset () |
Set event to non-signaled state. | |
Public Member Functions inherited from mlib::syncbase | |
syncbase () | |
Default constructor. | |
syncbase (const syncbase &e) | |
Copy constructor. | |
syncbase (syncbase &&e) noexcept | |
Move constructor. | |
virtual | ~syncbase () |
Destructor. | |
syncbase & | operator= (const syncbase &rhs) |
Assignment operator. | |
syncbase & | operator= (syncbase &&rhs) noexcept |
Move assignment operator. | |
int | operator== (const syncbase &rhs) const |
Equality operator. | |
virtual void | wait () |
Wait for object to become signaled. | |
virtual DWORD | wait (DWORD limit_msec) |
Wait a number of milliseconds for the object to become signaled. | |
virtual DWORD | wait (std::chrono::milliseconds limit) |
Wait a number of milliseconds for the object to become signaled. | |
virtual DWORD | wait_alertable (DWORD limit_msec=INFINITE) |
virtual DWORD | wait_msg (DWORD limit_msec=INFINITE, DWORD mask=QS_ALLINPUT) |
Wait for object to become signaled or a message to be queued. | |
operator bool () | |
Check if object is signaled. | |
virtual bool | is_signaled () |
Try to wait on the object. | |
HANDLE | handle () const |
Return OS handle of this object. | |
virtual const std::string & | name () const |
Return object's name. | |
Additional Inherited Members | |
Protected Member Functions inherited from mlib::syncbase | |
syncbase (const std::string &name) | |
Protected constructor. | |
void | set_handle (HANDLE h) |
Change object's handle. Closes the previous one. | |
virtual void | name (const std::string &nam) |
Change object's name. | |
Events have only two states: signaled and not signaled.
An automatic event is set by signal and reset the release of any waiting thread. A manual event has to be explicitly reset. When an event is signaled all waiting threads are released. To release only one thread use 'pulse' function.