Struct heron::rapier_plugin::rapier::rayon::Scope [−][src]
Represents a fork-join scope which can be used to spawn any number of tasks.
See scope()
for more information.
Implementations
impl<'scope> Scope<'scope>
[src]
pub fn spawn<BODY>(&self, body: BODY) where
BODY: FnOnce(&Scope<'scope>) + Send + 'scope,
[src]
BODY: FnOnce(&Scope<'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
.
Returns
Nothing. The spawned closures cannot pass back values to the caller directly, though they can write to local variables on the stack (if those variables outlive the scope) or communicate through shared channels.
(The intention is to eventualy integrate with Rust futures to support spawns of functions that compute a value.)
Examples
let mut value_a = None; let mut value_b = None; let mut value_c = None; rayon::scope(|s| { s.spawn(|s1| { // ^ this is the same scope as `s`; this handle `s1` // is intended for use by the spawned task, // since scope handles cannot cross thread boundaries. value_a = Some(22); // the scope `s` will not end until all these tasks are done s1.spawn(|_| { value_b = Some(44); }); }); s.spawn(|_| { value_c = Some(66); }); }); assert_eq!(value_a, Some(22)); assert_eq!(value_b, Some(44)); assert_eq!(value_c, Some(66));
See also
The scope
function has more extensive documentation about
task spawning.
Trait Implementations
Auto Trait Implementations
impl<'scope> !RefUnwindSafe for Scope<'scope>
[src]
impl<'scope> Send for Scope<'scope>
[src]
impl<'scope> Sync for Scope<'scope>
[src]
impl<'scope> Unpin for Scope<'scope>
[src]
impl<'scope> !UnwindSafe for Scope<'scope>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Component for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Resource for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,