Module Backend.Tasks

type ('a, 'b) doer = 'a -> 'b option
val run_sequentially : f:('a'b) doer -> 'a list -> unit

Run the tasks sequentially

val fork_protect : f:('a -> 'b) -> 'a -> 'b

does the bookkeeping necessary to safely execute an infer function f after a call to fork(2)

module Runner : sig ... end

A runner accepts new tasks repeatedly for parallel execution