relay_threading

Struct AsyncPool

Source
pub struct AsyncPool<F> { /* private fields */ }
Expand description

AsyncPool is a thread-based executor that runs asynchronous tasks on dedicated worker threads.

The pool collects tasks through a bounded channel and distributes them among threads, each of which runs its own Tokio executor. This design enables controlled concurrency and efficient use of system resources.

Implementations§

Source§

impl<F> AsyncPool<F>

Source

pub fn name(&self) -> &'static str

Returns the name of the AsyncPool.

Source

pub fn metrics(&self) -> AsyncPoolMetrics<'_>

Returns the AsyncPoolMetrics that are updated by the pool.

Source§

impl<F> AsyncPool<F>
where F: Future<Output = ()> + Send + 'static,

Source

pub fn new<S>(builder: AsyncPoolBuilder<S>) -> Result<Self>
where S: ThreadSpawn,

Creates a new AsyncPool based on the configuration specified by AsyncPoolBuilder.

This method initializes the dedicated worker threads and configures each executor with the defined concurrency limits.

Source

pub fn spawn(&self, future: F)

Schedules a future for execution within the AsyncPool.

The task is added to the pool’s internal queue to be executed by an available worker thread.

§Panics

This method panics if all receivers have been dropped which can happen when all threads of the pool panicked.

Source

pub async fn spawn_async(&self, future: F)

Asynchronously enqueues a future for execution within the AsyncPool.

This method awaits until the task is successfully added to the internal queue.

§Panics

This method panics if all receivers have been dropped which can happen when all threads of the pool panicked.

Trait Implementations§

Source§

impl<F> Clone for AsyncPool<F>

Source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<F: Debug> Debug for AsyncPool<F>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F> Freeze for AsyncPool<F>

§

impl<F> RefUnwindSafe for AsyncPool<F>

§

impl<F> Send for AsyncPool<F>
where F: Send,

§

impl<F> Sync for AsyncPool<F>
where F: Send,

§

impl<F> Unpin for AsyncPool<F>

§

impl<F> UnwindSafe for AsyncPool<F>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.