pub struct MemoryQuotaTracker {
state: IfEnabled<Mutex<State>>,
}Expand description
Memory data tracker
Instance of the memory quota system.
Usually found as Arc<MemoryQuotaTracker>.
Fields§
§state: IfEnabled<Mutex<State>>The actual tracker state etc.
Implementations§
Source§impl MemoryQuotaTracker
impl MemoryQuotaTracker
Sourcepub fn new<R: Spawn>(
runtime: &R,
config: Config,
) -> Result<Arc<Self>, StartupError>
pub fn new<R: Spawn>( runtime: &R, config: Config, ) -> Result<Arc<Self>, StartupError>
Set up a new MemoryDataTracker
Sourcepub fn reconfigure(
&self,
new_config: Config,
how: Reconfigure,
) -> Result<(), ReconfigureError>
pub fn reconfigure( &self, new_config: Config, how: Reconfigure, ) -> Result<(), ReconfigureError>
Reconfigure
Sourcepub fn used_current_approx(&self) -> Result<usize, TrackerCorrupted>
pub fn used_current_approx(&self) -> Result<usize, TrackerCorrupted>
Returns an estimate of the total memory use
The returned value is:
- Approximate.
- A snapshot as of the current moment (and there is no way to await changes)
- Always
usize::MAXfor a no-op tracker
Sourcepub fn new_account(
self: &Arc<Self>,
parent: Option<&Account>,
) -> Result<Account>
pub fn new_account( self: &Arc<Self>, parent: Option<&Account>, ) -> Result<Account>
Make a new Account
To actually record memory usage, a Participant must be added.
At most call sites, take an Account rather than a MemoryQuotaTracker,
and use Account::new_child().
That improves the ability to manage the hierarchy of Participants.
Sourcepub fn new_noop() -> Arc<MemoryQuotaTracker> ⓘ
pub fn new_noop() -> Arc<MemoryQuotaTracker> ⓘ
Obtain a new MemoryQuotaTracker that doesn’t track anything and never reclaims
Sourcefn lock(&self) -> Result<IfEnabled<MutexGuard<'_, State>>, TrackerCorrupted>
fn lock(&self) -> Result<IfEnabled<MutexGuard<'_, State>>, TrackerCorrupted>
Obtain the lock on the state
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for MemoryQuotaTracker
impl RefUnwindSafe for MemoryQuotaTracker
impl Send for MemoryQuotaTracker
impl Sync for MemoryQuotaTracker
impl Unpin for MemoryQuotaTracker
impl UnsafeUnpin for MemoryQuotaTracker
impl UnwindSafe for MemoryQuotaTracker
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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> ⓘ
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