relay_threading

Struct AsyncPoolBuilder

Source
pub struct AsyncPoolBuilder<S = DefaultSpawn> { /* private fields */ }
Expand description

AsyncPoolBuilder provides a flexible way to configure and build an AsyncPool for executing asynchronous tasks concurrently on dedicated threads.

This builder enables you to customize the number of threads, concurrency limits, thread naming, and panic handling strategies.

Implementations§

Source§

impl AsyncPoolBuilder<DefaultSpawn>

Source

pub fn new(runtime: Handle) -> AsyncPoolBuilder<DefaultSpawn>

Initializes a new AsyncPoolBuilder with default settings.

The builder is tied to the provided [tokio::runtime::Handle] and prepares to configure an AsyncPool.

Source§

impl<S> AsyncPoolBuilder<S>
where S: ThreadSpawn,

Source

pub fn pool_name(self, pool_name: &'static str) -> Self

Specifies a custom name for this pool.

Source

pub fn thread_name<F>(self, thread_name: F) -> Self
where F: FnMut(usize) -> String + 'static,

Specifies a custom naming convention for threads in the AsyncPool.

The provided closure receives the thread’s index and returns a name, which can be useful for debugging and logging.

Source

pub fn thread_panic_handler<F>(self, panic_handler: F) -> Self
where F: Fn(Box<dyn Any + Send>) + Send + Sync + 'static,

Sets a custom panic handler for threads in the AsyncPool.

If a thread panics, the provided handler will be invoked so that you can perform custom error handling or cleanup.

Source

pub fn task_panic_handler<F>(self, panic_handler: F) -> Self
where F: Fn(Box<dyn Any + Send>) + Send + Sync + 'static,

Sets a custom panic handler for tasks executed by the AsyncPool.

This handler is used to manage panics that occur during task execution, allowing for graceful error handling.

Source

pub fn spawn_handler<F>( self, spawn_handler: F, ) -> AsyncPoolBuilder<CustomSpawn<F>>
where F: FnMut(Thread) -> Result<()>,

Configures a custom thread spawning procedure for the AsyncPool.

This method allows you to adjust thread settings (e.g. naming, stack size) before thread creation, making it possible to apply application-specific configurations.

Source

pub fn num_threads(self, num_threads: usize) -> Self

Sets the number of worker threads for the AsyncPool.

This determines how many dedicated threads will be available for running tasks concurrently.

Source

pub fn max_concurrency(self, max_concurrency: usize) -> Self

Sets the maximum number of concurrent tasks per thread in the AsyncPool.

This controls how many futures can be polled simultaneously on each worker thread.

Source

pub fn build<F>(self) -> Result<AsyncPool<F>, Error>
where F: Future<Output = ()> + Send + 'static,

Constructs an AsyncPool based on the configured settings.

Finalizing the builder sets up dedicated worker threads and configures the executor to enforce the specified concurrency limits.

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.