pub struct StoreMemoryMeter { /* private fields */ }Expand description
Per-Store memory limiter: enforces the per-invocation byte ceiling and
records the invoking principal’s peak into the shared MemoryLedger.
Replaces a plain wasmtime::StoreLimits as the HostState limiter field. A
pooled Store is leased by different principals, so the ceiling and the
attributee are re-targeted per invocation via set; for a
run-loop’s dedicated Store they are set once to the owner at build.
Implementations§
Source§impl StoreMemoryMeter
impl StoreMemoryMeter
Sourcepub fn new(
max_memory_bytes: usize,
principal: PrincipalId,
ledger: MemoryLedger,
) -> Self
pub fn new( max_memory_bytes: usize, principal: PrincipalId, ledger: MemoryLedger, ) -> Self
Build a meter capped at max_memory_bytes, attributing growth to
principal, recording into ledger.
Sourcepub fn set(&mut self, max_memory_bytes: usize, principal: PrincipalId)
pub fn set(&mut self, max_memory_bytes: usize, principal: PrincipalId)
Re-target for a new invocation: the principal’s memory ceiling and the principal to attribute peak growth to. Called at invocation SET, since a pooled Store crosses principals.
Trait Implementations§
Source§impl ResourceLimiter for StoreMemoryMeter
impl ResourceLimiter for StoreMemoryMeter
Source§fn memory_growing(
&mut self,
_current: usize,
desired: usize,
maximum: Option<usize>,
) -> Result<bool>
fn memory_growing( &mut self, _current: usize, desired: usize, maximum: Option<usize>, ) -> Result<bool>
Notifies the resource limiter that an instance’s linear memory has been
requested to grow. Read more
Source§fn table_growing(
&mut self,
_current: usize,
_desired: usize,
_maximum: Option<usize>,
) -> Result<bool>
fn table_growing( &mut self, _current: usize, _desired: usize, _maximum: Option<usize>, ) -> Result<bool>
Notifies the resource limiter that an instance’s table has been
requested to grow. Read more
Source§fn memory_grow_failed(&mut self, error: Error) -> Result<(), Error>
fn memory_grow_failed(&mut self, error: Error) -> Result<(), Error>
Notifies the resource limiter that growing a linear memory, permitted by
the
memory_growing method, has failed. Read moreSource§fn table_grow_failed(&mut self, error: Error) -> Result<(), Error>
fn table_grow_failed(&mut self, error: Error) -> Result<(), Error>
Notifies the resource limiter that growing a linear memory, permitted by
the
table_growing method, has failed. Read moreSource§fn instances(&self) -> usize
fn instances(&self) -> usize
The maximum number of instances that can be created for a
Store. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for StoreMemoryMeter
impl !UnwindSafe for StoreMemoryMeter
impl Freeze for StoreMemoryMeter
impl Send for StoreMemoryMeter
impl Sync for StoreMemoryMeter
impl Unpin for StoreMemoryMeter
impl UnsafeUnpin for StoreMemoryMeter
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
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