Module OpamParallel.Make

Parameters

module G : G

Signature

module G : module type of struct include G end with type V.t = G.V.t
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

exception Errors of G.V.t list * (G.V.t * exn) list * G.V.t 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.