Module Sarek_ir_interp.DomainPool

type task = unit -> unit
type t = {
  1. num_domains : int;
  2. task_queue : task Stdlib.Queue.t;
  3. mutex : Stdlib.Mutex.t;
  4. cond : Stdlib.Condition.t;
  5. mutable shutdown : bool;
  6. mutable domains : unit Stdlib.Domain.t array;
  7. mutable active_tasks : int;
  8. mutable first_error : (exn * Stdlib.Printexc.raw_backtrace) option;
  9. done_cond : Stdlib.Condition.t;
}
val worker : t -> unit
val create : int -> t
val submit : t -> task -> unit
val wait_all : t -> unit