Struct drone_core::heap::Pool [−][src]
pub struct Pool { /* fields omitted */ }The set of free memory blocks.
It operates by connecting unallocated regions of memory together in a linked list, using the first word of each unallocated region as a pointer to the next.
Implementations
impl Pool[src]
impl Pool[src]pub const fn new(address: usize, size: usize, capacity: usize) -> Self[src]
Creates a new Pool.
pub fn size(&self) -> usize[src]
Returns the block size.
pub fn allocate(&self) -> Option<NonNull<u8>>[src]
Allocates one block of memory.
If this method returns Some(addr), then the addr returned will be
non-null address pointing to the block. If this method returns None,
then the pool is exhausted.
This operation is lock-free and has O(1) time complexity.