Caml1999I031a{r)Condition!t8@@@A@@@@@-condition.mlicc@@@@ @A@&create@$unitF@@@@@@@@@f//f/E@@ A@$wait@@@@@%Mutex!t@@@"@@@@@@@@2ioo3io@@c?c@@8@@@A@@@@@Bc@)ocaml.docS " The type of condition variables. PdQd-@@@@@@@@@h@@@A@@P@&create \f/3]f/9@б@г$unitgf/<hf/@@@ @@@0ihhiiiii@h4.@A@@г8!tvf/Dwf/E@@ @@@@@@@@@@@f// @? " Return a new condition variable. gFFgFm@@@@@@@A@@%$waitiosiow@б@гf!tiozio{@@ @@@0@>S,@A@@б@г%Mutex!t%Mutexioio@@@@@@@г $unitioio@@ @@@#@@@@@&@@@,@@)/ @@@ioo@ [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. jmS@@@@@@@B@@<&signaloo@б@г!too@@ @@@0@Uj,@A@@г`$unitoo@@ @@@@@@@@@@@o @А T [signal c] restarts one of the processes waiting on the condition variable [c]. pq@@@@@@@6C@@%)broadcast*s  +s  @б@г!t5s  6s  @@ @@@076677777@>S,@A@@г$unitDs  Es  @@ @@@@@@@@@@@Os   @ P [broadcast c] restarts all processes waiting on the condition variable [c]. [t  \u S p@@@@@@@sD@@%@'!A@ @@~W@C@@0feefffff@0E@A@ H************************************************************************oA@@pA@L@ H uBMMvBM@ H OCaml {C|C@ H DD3@ H Xavier Leroy and Damien Doligez, INRIA Rocquencourt E44E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ * 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 ]} à #* The type of condition variables. v #* Return a new condition variable. < * [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. 렠 U* [signal c] restarts one of the processes waiting on the condition variable [c].  Q* [broadcast c] restarts all processes waiting on the condition variable [c]. w@<,../../ocamlc)-nostdlib"-I,../../stdlib"-I4../../otherlibs/unix"-c"-w'+33..39+-warn-error"+A"-g*-bin-annot,-safe-stringߐ H/home/barsac/ci/builds/workspace/step-by-step-build/otherlibs/systhreads @0xzïRoӲKuW#0@@@8CamlinternalFormatBasics0cEXy