pub struct AdmissionGate { /* private fields */ }Expand description
Bounds how many turns an edge dials concurrently.
Cheap to clone — every handle shares the same underlying limit, the same
shape as AgentDialer/Client elsewhere in an edge’s AppState.
Implementations§
Source§impl AdmissionGate
impl AdmissionGate
Sourcepub fn new(max_concurrent_turns: usize) -> Self
pub fn new(max_concurrent_turns: usize) -> Self
Builds a gate that admits at most max_concurrent_turns turns at
once. A caller beyond that bound must shed instead of dialing.
Sourcepub fn try_admit(&self) -> Option<AdmissionPermit>
pub fn try_admit(&self) -> Option<AdmissionPermit>
Tries to admit one more turn. None means the gate is already at
capacity — the caller must shed rather than dial the agent.
The returned AdmissionPermit holds the slot until dropped; hold
it for the lifetime of the spawned turn.
Trait Implementations§
Source§impl Clone for AdmissionGate
impl Clone for AdmissionGate
Source§fn clone(&self) -> AdmissionGate
fn clone(&self) -> AdmissionGate
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for AdmissionGate
impl RefUnwindSafe for AdmissionGate
impl Send for AdmissionGate
impl Sync for AdmissionGate
impl Unpin for AdmissionGate
impl UnsafeUnpin for AdmissionGate
impl UnwindSafe for AdmissionGate
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request