#include <Condition.h>

Public Member Functions | |
Condition (Lockable &l) | |
virtual | ~Condition () |
Destroy Condition object. | |
void | signal () |
void | broadcast () |
virtual void | wait () |
virtual bool | wait (unsigned long timeout) |
![]() | |
virtual | ~Waitable () |
Destroy a Waitable object. | |
virtual void | wait ()=0 |
virtual bool | wait (unsigned long timeout)=0 |
Detailed Description
- Date
- <2003-07-16T14:38:59-0400>
- Version
- 2.2.1
A Condition is a Waitable object used to block a thread until a particular condition is met. A Condition object is always used in conjunction with Lockable object. This object should be a FastMutex, Mutex, PriorityMutex or PriorityInheritanceMutex.
Condition objects are reminiscent of POSIX condition variables in several ways but are slightly different.
A Condition is not subject to spurious wakeup.
Like all Waitable objects, Conditions are sensitive to Thread::interupt() which can be used to prematurely end a wait().
- See also
- Thread::interupt()
Before a wait() is performed on a Condition, the associated Lockable object should have been acquire()ed. When the wait() begins, that Lockable object is release()d (wait() will atomically begin the wait and unlock the Lockable).
A thread blocked by wait() will remain so until an exception occurs, or until the thread awakened by a signal() or broadcast(). When the thread resumes execution, the associated Lockable is acquire()d before wait() returns.
Scheduling
Threads blocked on a Condition are resumed in FIFO order.
Constructor & Destructor Documentation
◆ Condition()
Member Function Documentation
◆ broadcast()
void broadcast | ( | ) |
◆ signal()
void signal | ( | ) |
◆ wait() [1/2]
|
virtual |
Wait for this Condition, blocking the calling thread until a signal or broadcast is received.
This operation atomically releases the associated Lockable and blocks the calling thread.
- Exceptions
-
Interrupted_Exception thrown when the calling thread is interrupted. A thread may be interrupted at any time, prematurely ending any wait.
- Precondition
- The thread calling this method must have first acquired the associated Lockable object.
- Postcondition
- A thread that has resumed execution without exception (because of a signal(), broadcast() or exception) will have acquire()d the associated Lockable object before returning from a wait().
- See also
- Waitable::wait()
Implements Waitable.
◆ wait() [2/2]
|
virtual |
Wait for this Condition, blocking the calling thread until a signal or broadcast is received.
This operation atomically releases the associated Lockable and blocks the calling thread.
- Parameters
-
timeout maximum amount of time (milliseconds) this method could block
- Returns
- true if the Condition receives a signal or broadcast before timeout milliseconds elapse.
- false otherwise.
- Exceptions
-
Interrupted_Exception thrown when the calling thread is interrupted. A thread may be interrupted at any time, prematurely ending any wait.
- Precondition
- The thread calling this method must have first acquired the associated Lockable object.
- Postcondition
- A thread that has resumed execution without exception (because of a signal(), broadcast() or exception) will have acquire()d the associated Lockable object before returning from a wait().
Implements Waitable.
The documentation for this class was generated from the following file:
- Condition.h