Skip to main content

Module parallel

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.