[−][src]Struct heapless::pool::Pool
A lock-free memory pool
Methods
impl<T> Pool<T>
[src]
pub const fn new() -> Self
[src]
Creates a new empty pool
pub fn alloc(&self) -> Option<Box<T, Uninit>>
[src]
Claims a memory block from the pool
Returns None
when the pool is observed as exhausted
NOTE: This method does not have bounded execution time because it contains a CAS loop
pub fn free<S>(&self, value: Box<T, S>) where
S: 'static,
[src]
S: 'static,
Returns a memory block to the pool
NOTE: T
's destructor (if any) will run on value
iff S = Init
NOTE: This method does not have bounded execution time because it contains a CAS loop
pub fn grow(&self, memory: &'static mut [u8]) -> usize
[src]
Increases the capacity of the pool
This method might not fully utilize the given memory block due to alignment requirements.
This method returns the number of new blocks that can be allocated.
pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMutSlice<Element = Node<T>>,
[src]
A: AsMutSlice<Element = Node<T>>,
Increases the capacity of the pool
Unlike Pool.grow
this method fully utilizes the given
memory block
Trait Implementations
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self