Skip to main content

RunningTaskSlot

Struct RunningTaskSlot 

Source
pub struct RunningTaskSlot<R, E> { /* private fields */ }
Expand description

Runner-side slot for a task that has crossed into the running state.

This endpoint is returned by TaskSlot::try_start after the pending to running transition succeeds. It lets schedulers claim a task under their own queue locks before removing the task from their pending structures. Dropping a running slot before completion reports crate::TaskExecutionError::Dropped.

Implementations§

Source§

impl<R, E> RunningTaskSlot<R, E>

Source

pub fn complete(self, result: TaskResult<R, E>) -> bool

Completes the running task with its final result.

Cancellation is a pre-start decision and should be reported through TaskSlot::cancel_unstarted. Passing a cancellation or dropped result does not complete the running task; the slot is then dropped and callers observe crate::TaskExecutionError::Dropped.

§Parameters
  • result - Final task result to publish for this running task.
§Returns

true if the result was published, or false if the state was no longer running or the result does not represent normal task completion.

Source

pub fn run<C>(self, task: C) -> bool
where C: Callable<R, E>,

Runs a callable and publishes its final result through this running slot.

The callable is always executed because the pending-to-running transition has already succeeded. Task failures and panics are converted through TaskRunner.

§Parameters
  • task - Callable to execute for the already-started task.
§Returns

true if the callable result was published, or false if completion was no longer possible.

Trait Implementations§

Source§

impl<R, E> Drop for RunningTaskSlot<R, E>

Source§

fn drop(&mut self)

Publishes a dropped-result error when the running endpoint is abandoned.

Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<R, E> Freeze for RunningTaskSlot<R, E>

§

impl<R, E> !RefUnwindSafe for RunningTaskSlot<R, E>

§

impl<R, E> Send for RunningTaskSlot<R, E>
where R: Send, E: Send,

§

impl<R, E> Sync for RunningTaskSlot<R, E>
where R: Send, E: Send,

§

impl<R, E> Unpin for RunningTaskSlot<R, E>

§

impl<R, E> UnsafeUnpin for RunningTaskSlot<R, E>

§

impl<R, E> !UnwindSafe for RunningTaskSlot<R, E>

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> DropFlavorWrapper<T> for T

Source§

type Flavor = MayDrop

The DropFlavor that wraps T into Self
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

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

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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> IntoResult<T> for T

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.