Module Tasks.Runner

A runner accepts new tasks repeatedly for parallel execution

type ('work, 'final, 'result) t
val create : ?with_primary_db:bool -> jobs:int -> child_prologue:(IBase.ProcessPool.Worker.id -> unit) -> f:('work, 'result) doer -> child_epilogue:(IBase.ProcessPool.Worker.id -> 'final) -> (unit -> ('work, 'result) IBase.ProcessPool.TaskGenerator.t) -> ('work, 'final, 'result) t

Create a runner running jobs jobs in parallel

val run : (_, 'final, _) t -> 'final option IStdlib.IStd.Array.t

Start the given tasks with the runner and wait until completion