}zz55.5.0+dev0-2025-04-28/%Mutex!tA;@@@A@@@@@6../../stdlib/mutex.mli]]@@@@%Mutex@@A@&create@$unit@@@%Mutex!t@@@@@@``@@A@@$lock@%Mutex!t@@@!@@@@@@3c##4c#7@@2B@@(try_lock@%Mutex!t@@@$bool@@@@@@LoMo@@KC@@&unlock@%Mutex!t@@@R@@@@@@dueu@@cD@@'protect@%Mutex !t@@@@@n!@@@!a@B@@@@@@@@~ f f~ f @@E@@@3;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 4 is the mutex associated with the data structure !D&): ] Mutex.lock m; (* Critical section that operates over D *); Mutex.unlock m @@@@@@@@@@@@A6../../stdlib/mutex.mli#'Mutex.t34The type of mutexes.@@@@@@@@@@@@@@A@@@@,Mutex.create33Return a new mutex.@@@@@@@@@@@@@ @@@@*Mutex.lock3 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.@@@@@$4.12)Sys_error@@ G was not raised for recursive locking (platform-dependent behaviour)@@@@)Sys_error 8if the mutex is already locked by the thread calling D@!.@@@@@@%@@@@.Mutex.try_lock3(Same as -D@ Y, but does not suspend the calling thread if the mutex is already locked: just return %false N immediately in that case. If the mutex is unlocked, lock it and return $true!.@@@@@@@@@@@@@F@@@@,Mutex.unlock3 Unlock the given mutex. Other threads suspended trying to lock the mutex will restart. The mutex must have been previously locked by the thread that calls  D@!.@@@@@$4.12)Sys_error@@ f was not raised when unlocking an unlocked mutex or when unlocking a mutex from a different thread.@@@@)Sys_error 9if the mutex is unlocked or was locked by another thread.@@@@@@j@@@@Ǡ-Mutex.protect3/protect mutex f& runs #f()= in a critical section where %mutex6 is locked (using D@ #); it then takes care of releasing %mutex., whether #f() ) returned a value or raised an exception.@ x The unlocking operation is guaranteed to always takes place, even in the event an asynchronous exception (e.g. )Sys.Break@@ ') is raised in some signal handler.@@@@#5.1@@@@@@@@@@@@@@@@@A@@@@@