struct SurplusBudget {
seen: Arc<[AtomicUsize]>,
max_per_polynomial: usize,
}Expand description
Per-polynomial post-reconstruction allowance shared by a live cycle and its compact recovered tail.
The shared atomics close the retirement race: an acknowledgement that acquired the live cycle just before recovery and one that acquired the recovered tail just after it contend for the same slot. Snapshotting ordinary integers at retirement would let that race credit one surplus share twice.
Fields§
§seen: Arc<[AtomicUsize]>§max_per_polynomial: usizeImplementations§
Source§impl SurplusBudget
impl SurplusBudget
fn new(num_polys: usize, max_per_polynomial: usize) -> Self
fn try_credit(&self, poly_index: PolynomialIndex) -> Option<bool>
Trait Implementations§
Source§impl Clone for SurplusBudget
impl Clone for SurplusBudget
Source§fn clone(&self) -> SurplusBudget
fn clone(&self) -> SurplusBudget
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 SurplusBudget
impl RefUnwindSafe for SurplusBudget
impl Send for SurplusBudget
impl Sync for SurplusBudget
impl Unpin for SurplusBudget
impl UnsafeUnpin for SurplusBudget
impl UnwindSafe for SurplusBudget
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,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> 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>
Converts
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>
Converts
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