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.