[][src]Struct async_executors::JoinHandle

#[must_use = "JoinHandle will cancel your future when dropped."]pub struct JoinHandle<T> { /* fields omitted */ }

A framework agnostic JoinHandle type. Cancels the future on dropping the handle. You can call detach to leave the future running when dropping the handle.

This leverages the performance gains from the native join handles compared to RemoteHandle where possible.

It does wrap futures in Abortable where needed as tokio and async-std don't support canceling out of the box.

Panics

There is an inconsistency between executors when it comes to a panicking task. Generally we unwind the thread on which the handle is awaited when a task panics, but async-std will also let the executor thread unwind. No catch_unwind was added to bring async-std in line with the other executors here.

Awaiting the JoinHandle can also panic if you drop the executor before it completes.

Implementations

impl<T> JoinHandle<T>[src]

pub fn detach(self)[src]

Drops this handle without canceling the underlying future.

This method can be used if you want to drop the handle, but let the execution continue.

Trait Implementations

impl<T: Debug> Debug for JoinHandle<T>[src]

impl<T> Drop for JoinHandle<T>[src]

impl<T: 'static> Future for JoinHandle<T>[src]

type Output = T

The type of value produced on completion.

Auto Trait Implementations

impl<T> !RefUnwindSafe for JoinHandle<T>

impl<T> Send for JoinHandle<T> where
    T: Send

impl<T> Sync for JoinHandle<T> where
    T: Send

impl<T> Unpin for JoinHandle<T>

impl<T> !UnwindSafe for JoinHandle<T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<F> IntoFuture for F where
    F: Future
[src]

type Output = <F as Future>::Output

🔬 This is a nightly-only experimental API. (into_future)

The output that the future will produce on completion.

type Future = F

🔬 This is a nightly-only experimental API. (into_future)

Which kind of future are we turning this into?

impl<T> IntoFuture for T where
    T: Future
[src]

type Output = <T as Future>::Output

The type of value produced on completion.

type Future = T

Which kind of future are we turning this into?

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<Fut> TryFutureExt for Fut where
    Fut: TryFuture + ?Sized
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithSubscriber for T[src]