Struct ScopeFifo
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§
§impl<'scope> ScopeFifo<'scope>
impl<'scope> ScopeFifo<'scope>
pub fn spawn_fifo<BODY>(&self, body: BODY)
Available on crate feature cpu_os_threads
only.
pub fn spawn_fifo<BODY>(&self, body: BODY)
cpu_os_threads
only.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.
pub fn spawn_broadcast<BODY>(&self, body: BODY)
Available on crate feature cpu_os_threads
only.
pub fn spawn_broadcast<BODY>(&self, body: BODY)
cpu_os_threads
only.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
.
Trait Implementations§
Auto Trait Implementations§
impl<'scope> !Freeze for ScopeFifo<'scope>
impl<'scope> !RefUnwindSafe for ScopeFifo<'scope>
impl<'scope> Send for ScopeFifo<'scope>
impl<'scope> Sync for ScopeFifo<'scope>
impl<'scope> Unpin for ScopeFifo<'scope>
impl<'scope> !UnwindSafe for ScopeFifo<'scope>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.