Skip to main content

SendableJoinHandle

Struct SendableJoinHandle 

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

A sendable task handle returned by spawn_sendable().

The handle is Send when T is Send, but is not Sync. It may be moved and polled on another thread while the task stays on its original runtime. That runtime must keep being driven for the task to make progress.

Dropping the handle detaches the task unless cancel_on_drop is enabled. Awaiting it yields the output, or crate::JoinError if the task ends without one, including on panic or runtime shutdown.

Implementations§

Source§

impl<T> SendableJoinHandle<T>

Source

pub fn cancel_on_drop(self) -> SendableJoinHandle<T> ⓘ

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.

Source

pub fn cancel(self)

Requests cancellation and discards the result without waiting for cleanup.

The future is dropped on its runtime thread when the runtime next processes the task, or during shutdown. A running poll is not interrupted. This method may be called from another thread without a runtime context.

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 for SendableJoinHandle<T>
where T: Debug,

Source§

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

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

impl<T> Drop for SendableJoinHandle<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
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
Source§

impl<T> Future for SendableJoinHandle<T>

Source§

type Output = Result<T, JoinError>

The type of value produced on completion.
Source§

fn poll( self: Pin<&mut SendableJoinHandle<T>>, cx: &mut Context<'_>, ) -> Poll<<SendableJoinHandle<T> as Future>::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§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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<F> OnDropFutureExt for F
where F: Future,

Source§

fn on_drop<F: FnOnce()>(self, on_drop: F) -> OnDropFuture<Self, F> ⓘ

Wraps this future so that on_drop is called if the future is dropped before it completes. The callback is cancelled once the future completes, whatever its output.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V