Pool

Struct Pool 

Source
pub struct Pool(/* private fields */);
Expand description

A Pool object represents a private thread pool with its own thread limits.

This is in contrast to the default, or shared, thread pool used by the crate’s submit function as well as other code within the same process.

Implementations§

Source§

impl Pool

Source

pub fn new() -> Self

Creates a new Pool object.

Source

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

Convenience function for creating a new pool and calling scope.

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 Default for Pool

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for Pool

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for Pool

Source§

impl Sync for Pool

Auto Trait Implementations§

§

impl Freeze for Pool

§

impl RefUnwindSafe for Pool

§

impl Unpin for Pool

§

impl UnwindSafe for Pool

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<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.