D Programming Language
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 local clone.

# 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 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.

Copyright Sean Kelly 2005 - 2009. | Page generated by Ddoc on Wed Jan 27 15:24:51 2016