Skip to main content

JoinHandle

Struct JoinHandle 

Source
pub struct JoinHandle<T> { /* private fields */ }
Expand description

A native local task handle. It is neither Send nor Sync.

Returned by crate::rt::spawn() and crate::rt::Runtime::spawn(). Dropping the handle detaches the task unless cancel_on_drop is enabled. Awaiting it yields the task’s output, or an error if no output is available, for example after cancellation, a task panic, or runtime shutdown.

Implementations§

Source§

impl<T> JoinHandle<T>

Source

pub fn cancel_on_drop(self) -> Self

Requests cancellation when this handle is dropped instead of detaching the task.

Cancellation follows cancel and does not wait for cleanup. A running poll is not interrupted. The deprecated detach method still overrides this setting.

Source

pub fn cancel(self)

Requests cancellation and discards the result without waiting for cleanup.

The future is dropped when the runtime next processes the task, or during runtime shutdown. A running poll is not interrupted.

Source

pub fn detach(self)

👎Deprecated since 4.5.0:

Drop the handle instead if cancel_on_drop() is not enabled

Detaches the task so it continues running independently.

Overrides cancel_on_drop without requesting cancellation.

Source

pub fn is_finished(&self) -> bool

Returns true if the task completed or was closed without an output.

Trait Implementations§

Source§

impl<T: Debug> Debug for JoinHandle<T>

Source§

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

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

impl<T> Future for JoinHandle<T>

Source§

type Output = Result<T, JoinError>

The type of value produced on completion.
Source§

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

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for JoinHandle<T>

§

impl<T> !Send for JoinHandle<T>

§

impl<T> !Sync for JoinHandle<T>

§

impl<T> !UnwindSafe for JoinHandle<T>

§

impl<T> Freeze for JoinHandle<T>
where Task<T>: Freeze,

§

impl<T> Unpin for JoinHandle<T>
where Task<T>: Unpin,

§

impl<T> UnsafeUnpin for JoinHandle<T>
where Task<T>: UnsafeUnpin,

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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<F, T, E> TryFuture for F
where F: Future<Output = Result<T, E>> + ?Sized,

Source§

type Ok = T

The type of successful values yielded by this future
Source§

type Error = E

The type of failures yielded by this future
Source§

fn try_poll( self: Pin<&mut F>, cx: &mut Context<'_>, ) -> Poll<<F as Future>::Output>

Poll this TryFuture as if it were a Future. Read more
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.