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