Scope

Struct Scope 

Source
pub struct Scope<'scope, 'env: 'scope> { /* private fields */ }
Expand description

A scope to submit closures in.

See scope for details.

Implementations§

Source§

impl<'scope, 'env> Scope<'scope, 'env>

Source

pub fn submit<F: FnOnce() + Send + 'scope>(&'scope self, f: F)

Submits the closure to run on the Pool.

The closure cannot outlive the Scope it’s run in.

Methods from Deref<Target = Pool>§

Source

pub fn set_thread_limits(&self, min: u32, max: u32)

Sets the thread limits for the Pool object.

Source

pub fn submit<F: FnOnce() + Send + 'static>(&self, f: F)

Submit the closure to the thread pool.

  • The closure must have 'static lifetime as the thread may outlive the lifetime in which submit is called.
  • The closure must be Send as it will be sent to another thread for execution.
Source

pub fn scope<'env, F>(&self, f: F)
where F: for<'scope> FnOnce(&'scope Scope<'scope, 'env>),

Create a scope for submitting closures.

Within this scope local variables can be sent to the pool thread for execution. This is possible because scope will wait for all submitted closures to finish before returning, Note however that it will also wait for closures that were submitted from other threads.

Source

pub fn join(&self)

Waits for all submissions to finish.

Dropping the Pool will also wait for all submissions to finish.

Trait Implementations§

Source§

impl Deref for Scope<'_, '_>

Source§

type Target = Pool

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'scope, 'env> Freeze for Scope<'scope, 'env>

§

impl<'scope, 'env> RefUnwindSafe for Scope<'scope, 'env>

§

impl<'scope, 'env> Send for Scope<'scope, 'env>

§

impl<'scope, 'env> Sync for Scope<'scope, 'env>

§

impl<'scope, 'env> Unpin for Scope<'scope, 'env>

§

impl<'scope, 'env> !UnwindSafe for Scope<'scope, 'env>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.