Module Tasks.Runner

A runner accepts new tasks repeatedly for parallel execution

type ('work, 'final, 'result) t
val create : jobs:int -> child_prologue:(unit -> unit) -> f:('work'result) doer -> child_epilogue:(unit -> 'final) -> tasks:(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