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