module type S =sig
..end
type
t
type
item
val create : int -> t
create n
create a worker pool with n
initial workers.val set_size : t -> int -> unit
set_size pool n
sets the worker pool
size to n
.val push : t -> string -> item -> unit
push pool tag item
pushes item
at the end of queue for pool
.
Items with the same tag
are serialised, but items with different tags
can be executed in parallel if enough workers are available.
tag
s get scheduled in a round-robin fashion.
You need to start some workers, otherwise none of the items get executed.
val dump : t list -> Rpc.t * Rpc.t
dump pool
dumps diagnostic information about the pool