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.
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