OpamParallel
Parallel execution of jobs following a directed graph
module type VERTEX = sig ... end
module type G = sig ... end
When one job fails due to an exception, other running jobs are interrupted and reported with this sub-exception in the Errors list
Simply parallel execution of tasks
In the simple iter, map and reduce cases, ints are the indexes of the jobs in the list. First list is return code of sucessfull commands, second those which raised expcetions, and third one those which were canceled.
val iter : jobs:int -> command:('a -> unit OpamProcess.job) -> ?dry_run:bool -> 'a list -> unit
val map : jobs:int -> command:('a -> 'b OpamProcess.job) -> ?dry_run:bool -> 'a list -> 'b list
val reduce : jobs:int -> command:('a -> 'b OpamProcess.job) -> merge:('b -> 'b -> 'b) -> nil:'b ->
?dry_run:bool -> 'a list -> 'b
More complex parallelism with dependency graphs
module type SIG = sig ... end
module type GRAPH = sig ... end