# Module Lwt_condition

    module Lwt_condition: sig .. end

Conditions

Condition variables to synchronize between threads.

    type 'a t

Condition variable type. The type parameter denotes the type of value propagated from notifier to waiter.

    val create : unit -> 'a t

`create ()` creates a new condition variable.

    val wait : ?mutex:Lwt_mutex.t -> 'a t -> 'a Lwt.t

`wait mutex condvar` will cause the current thread to block, awaiting notification for a condition variable, `condvar`. If provided, the `mutex` must have been previously locked (within the scope of `Lwt_mutex.with_lock`, for example) and is temporarily unlocked until the condition is notified. Upon notification, `mutex` is re-locked before `wait` returns and the thread's activity is resumed. When the awaited condition is notified, the value parameter passed to `notify` is returned.

    val signal : 'a t -> 'a -> unit

`signal condvar value` notifies that a condition is ready. A single waiting thread will be awoken and will receive the notification value which will be returned from `wait`. Note that condition notification is not "sticky", i.e. if there is no waiter when `notify` is called, the notification will be missed and the value discarded.

    val broadcast : 'a t -> 'a -> unit

`broadcast condvar value` notifies all waiting threads. Each will be awoken in turn and will receive the same notification value.