Skip to main content

TaskPool

Struct TaskPool 

Source
pub struct TaskPool { /* private fields */ }
Expand description

A fixed-size pool of worker threads driving an unbounded set of suspended tasks.

Implementations§

Source§

impl TaskPool

Source

pub fn new(n_workers: usize) -> Self

Build a pool with n_workers threads (clamped to at least 1).

Source

pub fn worker_count(&self) -> usize

Number of worker threads in the pool.

Source

pub fn spawn(&self, future: impl Future<Output = ()> + Send + 'static)

Spawn a future. It runs to completion on the pool, suspending (off-thread) whenever it awaits, with no thread dedicated to it.

Source

pub fn shutdown(self)

Stop the workers once the current ready queue drains. Joins all threads. Call after the work you spawned has completed.

The flag is set while holding the queue lock, which is what makes a worker’s check-then-park atomic against it: a worker between the two holds that lock, so this store waits for it to park before the notify goes out.

Auto Trait Implementations§

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.