MakeGraph.Parallel
val iter : jobs:int -> command:(pred:(G.V.t * 'a) list -> G.V.t -> 'a OpamProcess.job) -> ?dry_run:bool ->
?pools:(G.V.t list * int) list -> G.t -> unit
Runs the job command ~pred v
for every node v
in a graph, in topological order using jobs
concurrent processes. Separate (possibly intersecting) node pools can be specified, with a separate number of allowed processes. The jobs
maximum applies to the remaining nodes.
The pred
argument provided to the command
function is the associative list of job results on direct predecessors of v
.
val map : jobs:int -> command:(pred:(G.V.t * 'a) list -> G.V.t -> 'a OpamProcess.job) -> ?dry_run:bool ->
?pools:(G.V.t list * int) list -> G.t -> (G.V.t * 'a) list
Same as iter
, but returns the results of all jobs as a vertex,result
associative list
Raised when the command
functions raised exceptions. Parameters are (successfully traversed nodes, exception nodes and corresponding exceptions, remaining nodes that weren't traversed)
exception Cyclic of G.V.t list list
Raised when the graph to traverse has cycles. Returns the cycles found.