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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T