pub struct BlockingTaskGuard(/* private fields */);rayon only.Expand description
RPC Tracing call guard semaphore.
This is used to restrict the number of concurrent RPC requests to tracing methods like
debug_traceTransaction as well as eth_getProof because they can consume a lot of
memory and CPU.
This types serves as an entry guard for the BlockingTaskPool and is used to rate limit
parallel blocking tasks in the pool.
Implementations§
Source§impl BlockingTaskGuard
impl BlockingTaskGuard
Sourcepub fn new(max_blocking_tasks: usize) -> Self
pub fn new(max_blocking_tasks: usize) -> Self
Create a new BlockingTaskGuard with the given maximum number of blocking tasks in
parallel.
Sourcepub async fn acquire_owned(self) -> Result<OwnedSemaphorePermit, AcquireError>
pub async fn acquire_owned(self) -> Result<OwnedSemaphorePermit, AcquireError>
See also [Semaphore::acquire_owned]
Sourcepub async fn acquire_many_owned(
self,
n: u32,
) -> Result<OwnedSemaphorePermit, AcquireError>
pub async fn acquire_many_owned( self, n: u32, ) -> Result<OwnedSemaphorePermit, AcquireError>
See also [Semaphore::acquire_many_owned]
Trait Implementations§
Source§impl Clone for BlockingTaskGuard
impl Clone for BlockingTaskGuard
Source§fn clone(&self) -> BlockingTaskGuard
fn clone(&self) -> BlockingTaskGuard
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for BlockingTaskGuard
impl !RefUnwindSafe for BlockingTaskGuard
impl Send for BlockingTaskGuard
impl Sync for BlockingTaskGuard
impl Unpin for BlockingTaskGuard
impl !UnwindSafe for BlockingTaskGuard
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes