StackPool

Struct StackPool 

Source
pub struct StackPool { /* private fields */ }
Expand description

Pool-based allocator for thread stacks.

This allocator maintains separate free lists for each stack size class to minimize fragmentation and allocation overhead.

Implementations§

Source§

impl StackPool

Source

pub const fn new() -> Self

Create a new stack pool.

Source

pub fn allocate(&self, size_class: StackSizeClass) -> Option<Stack>

Allocate a stack of the given size class.

This will first try to reuse a stack from the free list, and only allocate new memory if no suitable stack is available.

§Arguments
  • size_class - The desired stack size class
§Returns

A new stack, or None if allocation fails.

Source

pub fn deallocate(&self, stack: Stack)

Return a stack to the pool for reuse.

§Arguments
  • stack - The stack to return to the pool
Source

pub fn stats(&self) -> (usize, usize, usize)

Get statistics about the stack pool.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.