Download OCaml 4 Reference Guide

Transcript
490
val wait_signal : int list -> int
wait_signal sigs suspends the execution of the calling thread until the process receives
one of the signals specified in the list sigs. It then returns the number of the signal
received. Signal handlers attached to the signals in sigs will not be invoked. The signals
sigs are expected to be blocked before calling wait_signal.
25.2
Module Mutex : Locks for mutual exclusion.
Mutexes (mutual-exclusion locks) are used to implement critical sections and protect shared mutable data structures against concurrent accesses. The typical use is (if m is the mutex associated
with the data structure D):
Mutex.lock m;
(* Critical section that operates over D *);
Mutex.unlock m
type t
The type of mutexes.
val create : unit -> t
Return a new mutex.
val lock : t -> unit
Lock the given mutex. Only one thread can have the mutex locked at any time. A thread
that attempts to lock a mutex already locked by another thread will suspend until the other
thread unlocks the mutex.
val try_lock : t -> bool
Same as Mutex.lock[25.2], but does not suspend the calling thread if the mutex is already
locked: just return false immediately in that case. If the mutex is unlocked, lock it and
return true.
val unlock : t -> unit
Unlock the given mutex. Other threads suspended trying to lock the mutex will restart.
25.3
Module 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