|
NAMECondition - Condition variables to synchronize between threads. ModuleModule Condition DocumentationModule Condition
Condition variables to synchronize between threads. Condition variables are used when one thread wants to wait until another thread has finished doing something: the former thread 'waits' on the condition variable, the latter thread 'signals' the condition when it is done. Condition variables should always be protected by a mutex. The typical use is (if D is a shared data structure, m its mutex, and c is a condition variable):
type t The type of condition variables. val create : unit -> t Return a new condition variable. val wait : t -> Mutex.t -> unit wait c m atomically unlocks the mutex m and suspends the calling process on the condition variable c . The process will restart after the condition variable c has been signalled. The mutex m is locked again before wait returns. val signal : t -> unit signal c restarts one of the processes waiting on the condition variable c . val broadcast : t -> unit broadcast c restarts all processes waiting on the condition variable c .
|