Condition

Section: OCaml library (3o)
Updated: 2020-01-30
Index Return to Main Contents
 

NAME

Condition - Condition variables to synchronize between threads.  

Module

Module Condition  

Documentation

Module Condition
 :  sig end

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): Mutex.lock m; while (* some predicate P over D is not satisfied *) do Condition.wait c m done; (* Modify D *) if (* the predicate P over D is now satisfied *) then Condition.signal c; Mutex.unlock m

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 .


 

Index

NAME
Module
Documentation

This document was created by man2html, using the manual pages.
Time: 00:05:38 GMT, March 31, 2021