pub struct ScopeFifo<'scope> { /* private fields */ }
Expand description
Represents a fork-join scope which can be used to spawn any number of tasks.
Those spawned from the same thread are prioritized in relative FIFO order.
See scope_fifo()
for more information.
Implementations§
source§impl<'scope> ScopeFifo<'scope>
impl<'scope> ScopeFifo<'scope>
sourcepub fn spawn_fifo<BODY>(&self, body: BODY)where
BODY: FnOnce(&ScopeFifo<'scope>) + Send + 'scope,
pub fn spawn_fifo<BODY>(&self, body: BODY)where BODY: FnOnce(&ScopeFifo<'scope>) + Send + 'scope,
Spawns a job into the fork-join scope self
. This job will
execute sometime before the fork-join scope completes. The
job is specified as a closure, and this closure receives its
own reference to the scope self
as argument. This can be
used to inject new jobs into self
.
See also
This method is akin to Scope::spawn()
, but with a FIFO
priority. The scope_fifo
function has more details about
this distinction.
sourcepub fn spawn_broadcast<BODY>(&self, body: BODY)where
BODY: Fn(&ScopeFifo<'scope>, BroadcastContext<'_>) + Send + Sync + 'scope,
pub fn spawn_broadcast<BODY>(&self, body: BODY)where BODY: Fn(&ScopeFifo<'scope>, BroadcastContext<'_>) + Send + Sync + 'scope,
Spawns a job into every thread of the fork-join scope self
. This job will
execute on each thread sometime before the fork-join scope completes. The
job is specified as a closure, and this closure receives its own reference
to the scope self
as argument, as well as a BroadcastContext
.