Struct futures_util::future::RemoteHandle[][src]

#[must_use = "dropping a remote handle cancels the underlying future"]
pub struct RemoteHandle<T> { /* fields omitted */ }
This is supported on crate feature channel only.
Expand description

The handle to a remote future returned by remote_handle. When you drop this, the remote future will be woken up to be dropped by the executor.

Unwind safety

When the remote future panics, Remote will catch the unwind and transfer it to the thread where RemoteHandle is being awaited. This is good for the common case where Remote is spawned on a threadpool. It is unlikely that other code in the executor working thread shares mutable data with the spawned future and we preserve the executor from losing its working threads.

If you run the future locally and send the handle of to be awaited elsewhere, you must be careful with regard to unwind safety because the thread in which the future is polled will keep running after the panic and the thread running the RemoteHandle will unwind.

Implementations

impl<T> RemoteHandle<T>[src]

pub fn forget(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 RemoteHandle<T>[src]

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

Formats the value using the given formatter. Read more

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

type Output = T

The type of value produced on completion.

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<T>[src]

Attempt 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 RemoteHandle<T>

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

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

impl<T> Unpin for RemoteHandle<T>

impl<T> !UnwindSafe for RemoteHandle<T>

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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?

pub fn into_future(self) -> <F as IntoFuture>::Future[src]

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

Creates a future from a value.

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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

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

Poll this TryFuture as if it were a Future. Read more

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.