Functor Xapi_work_queues.Make

module Make (I : Item: S  with type item = I.t
Parameters:
I : Item

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