Struct PressureHandler
pub struct PressureHandler {
reaction: PressureReaction,
current_level: Mutex<RawMutex, MemoryPressureLevel>,
}Expand description
Memory pressure handler for stratified pools.
Monitors memory pressure levels and triggers configured reactions.
Fields§
§reaction: PressureReaction§current_level: Mutex<RawMutex, MemoryPressureLevel>Implementations§
§impl PressureHandler
impl PressureHandler
pub fn new(reaction: PressureReaction) -> PressureHandler
pub fn new(reaction: PressureReaction) -> PressureHandler
Create a new pressure handler with the specified reaction.
pub fn no_reaction() -> PressureHandler
pub fn no_reaction() -> PressureHandler
Create a handler with no reaction.
pub fn shrink_to(target_utilization: f64) -> PressureHandler
pub fn shrink_to(target_utilization: f64) -> PressureHandler
Create a handler that shrinks to target utilization.
pub fn with_callback<F>(callback: F) -> PressureHandler
pub fn with_callback<F>(callback: F) -> PressureHandler
Create a handler with a custom callback.
pub fn current_level(&self) -> MemoryPressureLevel
pub fn current_level(&self) -> MemoryPressureLevel
Get the current pressure level.
pub fn on_pressure_change(
&self,
new_level: MemoryPressureLevel,
max_per_bucket: usize,
) -> Option<usize>
pub fn on_pressure_change( &self, new_level: MemoryPressureLevel, max_per_bucket: usize, ) -> Option<usize>
Handle a pressure level change.
Returns the number of buffers to retain per bucket (if shrinking).
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for PressureHandler
impl !RefUnwindSafe for PressureHandler
impl Send for PressureHandler
impl Sync for PressureHandler
impl Unpin for PressureHandler
impl !UnwindSafe for PressureHandler
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.