[][src]Struct blocking_permit::BlockingPermit

#[must_use = "must call `run` or `enter` before blocking"]
pub struct BlockingPermit<'a> { /* fields omitted */ }

A scoped permit for blocking operations. When dropped (out of scope or manually), the permit is released.

Methods

impl<'a> BlockingPermit<'a>[src]

pub fn enter(&self)[src]

Enter the blocking section of code on the current thread.

This is a secondary step from completion of the BlockingPermitFuture as it must be called on the same thread, immediately before the blocking section. The blocking permit should then be dropped at the end of the blocking section. If the tokio-threaded feature is or might be used, run should be used instead.

Panics

Panics if this BlockingPermit has already been entered.

pub fn run<F, T>(self, f: F) -> T where
    F: FnOnce() -> T, 
[src]

Enter and run the blocking closure.

When the tokio-threaded feature is enabled, this wraps the tokio::task::block_in_place call, as a secondary step from completion of the BlockingPermitFuture that must be called on the same thread.

In any case, the permit is passed by value and will be dropped on termination of this call.

Panics

Panics if this BlockingPermit has already been entered.

Trait Implementations

impl<'a> Debug for BlockingPermit<'a>[src]

impl<'a> Drop for BlockingPermit<'a>[src]

Auto Trait Implementations

impl<'a> !RefUnwindSafe for BlockingPermit<'a>

impl<'a> Send for BlockingPermit<'a>

impl<'a> !Sync for BlockingPermit<'a>

impl<'a> Unpin for BlockingPermit<'a>

impl<'a> !UnwindSafe for BlockingPermit<'a>

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, U> Into<U> for T where
    U: From<T>, 
[src]

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.