[][src]Struct async_executors::TokioTp

pub struct TokioTp { /* fields omitted */ }
This is supported on feature="tokio_tp" only.

An executor that uses tokio::runtime::Runtime.

Unwind Safety.

You must only spawn futures to this API that are unwind safe. Tokio will wrap it in std::panic::AssertUnwindSafe and wrap the poll invocation with std::panic::catch_unwind.

They reason that this is fine because they require Send + 'static on the future. As far as I can tell this is wrong. Unwind safety can be circumvented in several ways even with Send + 'static (eg. parking_lot::Mutex is Send + 'static but !UnwindSafe).

You should make sure that if your future panics, no code that lives on after the spawned task has unwound, nor any destructors called during the unwind can observe data in an inconsistent state.

See the relevant catch_unwind RFC and it's discussion threads for more info as well as the documentation in stdlib.

Methods

impl TokioTp[src]

pub fn block_on<F: Future>(&mut self, f: F) -> F::Output[src]

Wrapper around Runtime::block_on.

Trait Implementations

impl Clone for TokioTp[src]

impl Debug for TokioTp[src]

impl Spawn for TokioTp[src]

impl SpawnHandle for TokioTp[src]

impl<Out: 'static + Send> SpawnHandleOs<Out> for TokioTp[src]

impl<'_> TryFrom<&'_ mut Builder> for TokioTp[src]

type Error = Error

The type returned in the event of a conversion error.

Auto Trait Implementations

impl !RefUnwindSafe for TokioTp

impl Send for TokioTp

impl Sync for TokioTp

impl Unpin for TokioTp

impl !UnwindSafe for TokioTp

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> Instrument for T[src]

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

impl<Sp> SpawnExt for Sp where
    Sp: Spawn + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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<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]