Functor Duppy.Monad.Condition.Factory

module Factory: 
functor (Mutex : Duppy.Monad.Mutex.Mutex_t) -> sig .. end
Parameters:
Mutex : Duppy.Monad.Mutex.Mutex_t

type condition 

Type of a condition, used in wait and broadcast

val create : unit -> condition

Create a condition. Implementation-wise, a duppy task is created that will be used to select a waiting computation, and resume it. Thus, priority and s represents, resp., the priority and scheduler used when running calling process' computation.

val wait : condition ->
Mutex.mutex -> (unit, 'a) Duppy.Monad.t

wait h m is a computation that:

val broadcast : condition -> (unit, 'a) Duppy.Monad.t

broadcast c is a computation that resumes all computations waiting on c. It should return immediately.

val signal : condition -> (unit, 'a) Duppy.Monad.t

signal c is a computation that resumes one computation waiting on c. It should return immediately.