Struct TrackerExecutor

Source
pub struct TrackerExecutor<E> { /* private fields */ }
Expand description

Track running tasks.

Note that there is no guarantee that the runtime would drop the future after it is done, therefore this should only be used for purely approx statistics and not actual numbers. Additionally, it does not track any tasks spawned directly by the runtime but only by Executor::spawn through this struct.

Implementations§

Source§

impl<E: Executor> TrackerExecutor<E>

Source

pub fn new(executor: E) -> Self

Source

pub fn count(&self) -> usize

Number of active tasks.

Trait Implementations§

Source§

impl<E> Debug for TrackerExecutor<E>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<E: Executor> Executor for TrackerExecutor<E>

Source§

fn spawn<F>(&self, future: F) -> JoinHandle<F::Output>
where F: Future + Send + 'static, F::Output: Send + 'static,

Spawns a new asynchronous task in the background, returning an Future JoinHandle for it.
Source§

fn spawn_abortable<F>(&self, future: F) -> AbortableJoinHandle<F::Output>
where F: Future + Send + 'static, F::Output: Send + 'static,

Spawns a new asynchronous task in the background, returning an abortable handle that will cancel the task once the handle is dropped. Read more
Source§

fn dispatch<F>(&self, future: F)
where F: Future + Send + 'static, F::Output: Send + 'static,

Spawns a new asynchronous task in the background without an handle. Basically the same as Executor::spawn.
Source§

fn spawn_coroutine<T, F, Fut>(&self, f: F) -> CommunicationTask<T>
where F: FnMut(Receiver<T>) -> Fut, Fut: Future<Output = ()> + Send + 'static,

Spawns a new asynchronous task that accepts messages to the task using channels. This function returns an handle that allows sending a message or if there is no reference to the handle at all (in other words, all handles are dropped), the task would be aborted.
Source§

fn spawn_coroutine_with_context<T, F, C, Fut>( &self, context: C, f: F, ) -> CommunicationTask<T>
where F: FnMut(C, Receiver<T>) -> Fut, Fut: Future<Output = ()> + Send + 'static,

Spawns a new asynchronous task with provided context, that accepts messages to the task using channels. This function returns an handle that allows sending a message or if there is no reference to the handle at all (in other words, all handles are dropped), the task would be aborted.
Source§

fn spawn_unbounded_coroutine<T, F, Fut>( &self, f: F, ) -> UnboundedCommunicationTask<T>
where F: FnMut(UnboundedReceiver<T>) -> Fut, Fut: Future<Output = ()> + Send + 'static,

Spawns a new asynchronous task that accepts messages to the task using channels. This function returns an handle that allows sending a message or if there is no reference to the handle at all (in other words, all handles are dropped), the task would be aborted.
Source§

fn spawn_unbounded_coroutine_with_context<T, F, C, Fut>( &self, context: C, f: F, ) -> UnboundedCommunicationTask<T>
where F: FnMut(C, UnboundedReceiver<T>) -> Fut, Fut: Future<Output = ()> + Send + 'static,

Spawns a new asynchronous task with provided context, that accepts messages to the task using channels. This function returns an handle that allows sending a message or if there is no reference to the handle at all (in other words, all handles are dropped), the task would be aborted.

Auto Trait Implementations§

§

impl<E> Freeze for TrackerExecutor<E>
where E: Freeze,

§

impl<E> RefUnwindSafe for TrackerExecutor<E>
where E: RefUnwindSafe,

§

impl<E> Send for TrackerExecutor<E>
where E: Send,

§

impl<E> Sync for TrackerExecutor<E>
where E: Sync,

§

impl<E> Unpin for TrackerExecutor<E>
where E: Unpin,

§

impl<E> UnwindSafe for TrackerExecutor<E>
where E: UnwindSafe,

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.