Module Mavryk_workers.Worker

Workers, their types and signatures, and a functor to make them.

Worker group maker

type worker_name = {
  1. base : string;
  2. name : string;
}
module type T = sig ... end

Functor to build a group of workers. At that point, all the types are fixed and introspectable, but the actual parameters and event handlers can be tweaked for each individual worker.

module WG = MakeGroup (Name) (Request) defines a worker group all using the same Name, Event, etc. To instantiate a worker from a group, you must give the Types parameter: WG.MakeWorker(Types). This defines a Worker module of type T. This last instantiation can be safely used as first class module.

MakeSingle (Name) (Request) (Types) is the same as using MakeGroup and then MakeWorker. It's a special case which you can use if you only ever need a single instantiation.