1Mutex(3) OCaml library Mutex(3)
2
3
4
6 Mutex - Locks for mutual exclusion.
7
9 Module Mutex
10
12 Module Mutex
13 : sig end
14
15
16 Locks for mutual exclusion.
17
18 Mutexes (mutual-exclusion locks) are used to implement critical sec‐
19 tions and protect shared mutable data structures against concurrent ac‐
20 cesses. The typical use is (if m is the mutex associated with the data
21 structure D ):
22 Mutex.lock m;
23 (* Critical section that operates over D *);
24 Mutex.unlock m
25
26
27
28
29
30
31 type t
32
33
34 The type of mutexes.
35
36
37
38 val create : unit -> t
39
40 Return a new mutex.
41
42
43
44 val lock : t -> unit
45
46 Lock the given mutex. Only one thread can have the mutex locked at any
47 time. A thread that attempts to lock a mutex already locked by another
48 thread will suspend until the other thread unlocks the mutex.
49
50
51
52 val try_lock : t -> bool
53
54 Same as Mutex.lock , but does not suspend the calling thread if the mu‐
55 tex is already locked: just return false immediately in that case. If
56 the mutex is unlocked, lock it and return true .
57
58
59
60 val unlock : t -> unit
61
62 Unlock the given mutex. Other threads suspended trying to lock the mu‐
63 tex will restart.
64
65
66
67
68
69OCamldoc 2021-01-26 Mutex(3)