core.sync.condition

The condition module provides a primitive for synchronized condition checking.

License:
Boost License 1.0

Authors:
Sean Kelly

Source:
core/sync/condition.d

class Condition;
This class represents a condition variable as concieved 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.

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:
SyncException on error.

void wait();
Wait until notified.

Throws:
SyncException 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:
SyncException on error.

Returns:
true if notified before the timeout and false if not.

bool wait(long period);
Scheduled for deprecation in January 2012. Please use the version which takes a Duration instead.

Suspends the calling thread until a notification occurs or until the supplied time period has elapsed.

Parameters:
long period The time to wait, in 100 nanosecond intervals. This value may be adjusted to equal to the maximum wait period supported by the target platform if it is too large.

In:
period must be non-negative.

Throws:
SyncException on error.

Returns:
true if notified before the timeout and false if not.

void notify();
Notifies one waiter.

Throws:
SyncException on error.

void notifyAll();
Notifies all waiters.

Throws:
SyncException on error.