class[['a, 'b]]
msync_engine :'a #engine list -> ('a -> 'b -> 'b) -> 'b -> Unixqueue.event_system ->
['b]
engine
let me = new msync_engine el f x0 esys
- Runs the engines in el
in
parallel, and waits until all are `Done
. The result of me
is
then computed by folding the results of the part engines using
f
, with an initial accumulator x0
.
If one of the engines goes to the states `Aborted
or `Error
,
the combined engine will follow this transition. The other,
non-aborted and non-errorneous engines are aborted in this case.
`Error
has higher precedence than `Aborted
.
If calling f
results in an exception, this is handled as if
the part engine signals an error.
If the combined engine is aborted, this request is forwarded
to all member engines.