www.digitalmars.com

D Programming Language 2.0

Last update Thu Sep 16 11:25:54 2010

core.sync.condition

The condition module provides a primitive for synchronized condition checking.

License:
Boost License 1.0.

Authors:
Sean Kelly

Copyright Sean Kelly 2005 - 2009. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

http:
//www.boost.org/LICENSE_1_0.txt)

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(long period);
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.