diff options
Diffstat (limited to 'otherlibs/threads/condition.ml')
| -rw-r--r-- | otherlibs/threads/condition.ml | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/otherlibs/threads/condition.ml b/otherlibs/threads/condition.ml deleted file mode 100644 index 521711418d..0000000000 --- a/otherlibs/threads/condition.ml +++ /dev/null @@ -1,36 +0,0 @@ -(***********************************************************************) -(* *) -(* Objective Caml *) -(* *) -(* Xavier Leroy and Damien Doligez, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the GNU Library General Public License, with *) -(* the special exception on linking described in file ../../LICENSE. *) -(* *) -(***********************************************************************) - -(* $Id$ *) - -type t = { mutable waiting: Thread.t list } - -let create () = { waiting = [] } - -let wait cond mut = - Thread.critical_section := true; - Mutex.unlock mut; - cond.waiting <- Thread.self() :: cond.waiting; - Thread.sleep(); - Mutex.lock mut - -let signal cond = - match cond.waiting with (* atomic *) - [] -> () - | th :: rem -> cond.waiting <- rem (* atomic *); Thread.wakeup th - -let broadcast cond = - let w = cond.waiting in (* atomic *) - cond.waiting <- []; (* atomic *) - List.iter Thread.wakeup w - |
