Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

core.sync.condition

The condition module provides a primitive for synchronized condition checking.
Authors:
Sean Kelly
class Condition;
This class represents a condition variable as conceived by C.A.R. Hoare. As per Mesa type monitors however, "signal" has been replaced with "notify" to indicate that control is not transferred to the waiter when a notification is sent.
nothrow @safe this(Mutex m);
Initializes a condition object which is associated with the supplied mutex object.
Parameters:
Mutex m The mutex with which this condition will be associated.
Throws:
SyncError on error.
@property Mutex mutex();
Gets the mutex associated with this condition.
Returns:
The mutex associated with this condition.
void wait();
Wait until notified.
Throws:
SyncError on error.
bool wait(Duration val);
Suspends the calling thread until a notification occurs or until the supplied time period has elapsed.
Parameters:
Duration val The time to wait.

In val must be non-negative.

Throws:
SyncError on error.
Returns:
true if notified before the timeout and false if not.
void notify();
Notifies one waiter.
Throws:
SyncError on error.
void notifyAll();
Notifies all waiters.
Throws:
SyncError on error.