BlockingPermit

Struct BlockingPermit 

Source
pub struct BlockingPermit<'a> { /* private fields */ }
Expand description

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

Implementations§

Source§

impl<'a> BlockingPermit<'a>

Source

pub fn enter(&self)

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.

Source

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

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§

Source§

impl<'a> Debug for BlockingPermit<'a>

Source§

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

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

impl<'a> Drop for BlockingPermit<'a>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

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

§

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§

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<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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
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.