Builder

Struct Builder 

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

Thread pool configuration.

Provide detailed control over the properties and behavior of the thread pool.

Implementations§

Source§

impl Builder

Source

pub fn new() -> Builder

Returns a builder with default values

Source

pub fn core_pool_size(self, val: usize) -> Self

Set the thread pool’s core size.

The number of threads to keep in the pool, even if they are idle.

Source

pub fn max_pool_size(self, val: usize) -> Self

Set the thread pool’s maximum size

The maximum number of threads to allow in the pool.

Source

pub fn keep_alive(self, val: Duration) -> Self

Set the thread keep alive duration

When the number of threads is greater than core target or core threads are allowed to timeout, this is the maximum time that idle threads will wait for new tasks before terminating.

Source

pub fn allow_core_thread_timeout(self) -> Self

Allow core threads to timeout

Source

pub fn work_queue_capacity(self, val: usize) -> Self

Maximum number of jobs that can be pending in the work queue

Source

pub fn name_prefix<S: Into<String>>(self, val: S) -> Self

Set name prefix of threads spawned by the pool

Thread name prefix is used for generating thread names. For example, if prefix is my-pool-, then threads in the pool will get names like my-pool-1 etc.

Source

pub fn stack_size(self, val: usize) -> Self

Set the stack size of threads spawned by the pool

Source

pub fn after_start<F>(self, f: F) -> Self
where F: Fn() + Send + Sync + 'static,

Execute function f right after each thread is started but before running any tasks on it

This is initially intended for bookkeeping and monitoring uses

Source

pub fn before_stop<F>(self, f: F) -> Self
where F: Fn() + Send + Sync + 'static,

Execute function f before each worker thread stops

This is initially intended for bookkeeping and monitoring uses

Source

pub fn build<T: Task>(self) -> (Sender<T>, ThreadPool<T>)

Build and return the configured thread pool

Trait Implementations§

Source§

impl Debug for Builder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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.