Skip to main content

TaskHandle

Struct TaskHandle 

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

Handle for a task running outside the caller’s current stack.

TaskHandle is returned by thread-backed executors and services. Calling Self::get blocks the current thread until the accepted task completes. Awaiting the handle waits asynchronously for the same final task result.

§Type Parameters

  • R - The task success value.
  • E - The task error value.

Implementations§

Source§

impl<R, E> TaskHandle<R, E>

Source

pub fn get(self) -> TaskResult<R, E>

Waits for the task to finish and returns its final result.

This method blocks the current thread until a result is available.

§Returns

Ok(R) if the task succeeds. If the accepted task returns Err(E), panics, or is cancelled before producing a value, the corresponding crate::TaskExecutionError is returned.

Source

pub fn is_done(&self) -> bool

Returns whether the task has reported completion.

§Returns

true after the task runner has produced or abandoned its final result.

Source

pub fn cancel(&self) -> bool

Attempts to cancel the task.

Cancellation can only win before the runner marks the task as started. It cannot interrupt a task that is already running on an OS thread.

§Returns

true if the task was cancelled before it started, or false if the task was already running or completed.

Trait Implementations§

Source§

impl<R, E> Future for TaskHandle<R, E>

Source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Polls this handle for the accepted task’s final result.

Source§

type Output = Result<R, TaskExecutionError<E>>

The type of value produced on completion.

Auto Trait Implementations§

§

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

§

impl<R, E> RefUnwindSafe for TaskHandle<R, E>

§

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

§

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

§

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

§

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

§

impl<R, E> UnwindSafe for TaskHandle<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> 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<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. 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.