diff options
| author | Enrico Tassi | 2014-03-13 15:41:44 +0100 |
|---|---|---|
| committer | Enrico Tassi | 2014-03-13 16:04:13 +0100 |
| commit | c9b1caaa5516d616e400faa7a7c0278c8677c51c (patch) | |
| tree | 2dc6f7870a9824f8b9c8357774287c5c44b332a2 /lib/workerPool.mli | |
| parent | 8ee720fef8e21595827d18e1e28777c1d061a9e5 (diff) | |
STM: move out a couple of submodules
These modules are not as reusable as one may want them to be, but
moving them out simplifies a little STM.
Diffstat (limited to 'lib/workerPool.mli')
| -rw-r--r-- | lib/workerPool.mli | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/workerPool.mli b/lib/workerPool.mli new file mode 100644 index 0000000000..d7a546929f --- /dev/null +++ b/lib/workerPool.mli @@ -0,0 +1,30 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2012 *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + +module Make(Worker : sig + type process + val spawn : + ?prefer_sock:bool -> ?env:string array -> string -> string array -> + process * in_channel * out_channel +end) : sig + +type worker_id = int +type spawn = + args:string array -> env:string array -> unit -> + in_channel * out_channel * Worker.process + +val init : + size:int -> manager:(cancel:bool ref -> worker_id -> spawn -> unit) -> unit +val is_empty : unit -> bool +val n_workers : unit -> int +val cancel : worker_id -> unit + +(* The worker should call this function *) +val worker_handshake : in_channel -> out_channel -> unit + +end |
