Module parallel

Source
Expand description

This module defines parallel operations that are implemented in one way for the serial compiler, and another way the parallel compiler.

Structs§

ParallelGuard
A guard used to hold panics that occur during a parallel section to later by unwound. This is used for the parallel compiler to prevent fatal errors from non-deterministically hiding errors by ensuring that everything in the section has completed executing before continuing with unwinding. It’s also used for the non-parallel code to ensure error message output match the parallel compiler for testing purposes.

Functions§

broadcast
join
par_for_each_in
par_map
par_slice 🔒
parallel_guard
This gives access to a fresh parallel guard in the closure and will unwind any panics caught in it after the closure returns.
scope
serial_join 🔒
spawn
try_par_for_each_in
This runs for_each in parallel for each iterator item. If one or more of the for_each calls returns Err, the function will also return Err. The error returned will be non-deterministic, but this is expected to be used with ErrorGuaranteed which are all equivalent.