module Make (I : Item) : S with type item = I.t
type t
type of worker pools
type item
work 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.
tags 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