Module Condition
: (moduleStdlib__Condition)typet
The type of condition variables.
valcreate : unit->tcreate() creates and returns a new condition variable. This condition variable should be associated (in
the programmer's mind) with a certain mutex m and with a certain property P of the data structure that is
protected by the mutex m .
valwait : t->Mutex.t->unit
The call waitcm is permitted only if m is the mutex associated with the condition variable c , and only
if m is currently locked. This call atomically unlocks the mutex m and suspends the current thread on
the condition variable c . This thread can later be woken up after the condition variable c has been
signaled via Condition.signal or Condition.broadcast ; however, it can also be woken up for no reason.
The mutex m is locked again before wait returns. One cannot assume that the property P associated with
the condition variable c holds when wait returns; one must explicitly test whether P holds after calling
wait .
valsignal : t->unitsignalc wakes up one of the threads waiting on the condition variable c , if there is one. If there is
none, this call has no effect.
It is recommended to call signalc inside a critical section, that is, while the mutex m associated with
c is locked.
valbroadcast : t->unitbroadcastc wakes up all threads waiting on the condition variable c . If there are none, this call has
no effect.
It is recommended to call broadcastc inside a critical section, that is, while the mutex m associated
with c is locked.
OCamldoc 2025-06-12 Stdlib.Condition(3o)