pub struct NumaSlab { /* private fields */ }Expand description
Per-NUMA-node slab with free-list recycling.
Implementations§
Source§impl NumaSlab
impl NumaSlab
Sourcepub fn new(node_id: usize, capacity: usize) -> Self
pub fn new(node_id: usize, capacity: usize) -> Self
Create a new slab for the given NUMA node with the specified capacity.
Sourcepub fn has_capacity(&self) -> bool
pub fn has_capacity(&self) -> bool
Whether the slab has available capacity.
Sourcepub fn allocate(&mut self) -> Option<NumaSlabHandle>
pub fn allocate(&mut self) -> Option<NumaSlabHandle>
Allocate a slot, returning a handle or None if exhausted.
Sourcepub fn deallocate(&mut self, handle: &NumaSlabHandle) -> bool
pub fn deallocate(&mut self, handle: &NumaSlabHandle) -> bool
Deallocate a slot identified by handle.
Returns true if deallocation succeeded, false if the handle is stale
(wrong generation) or already freed.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for NumaSlab
impl RefUnwindSafe for NumaSlab
impl Send for NumaSlab
impl Sync for NumaSlab
impl Unpin for NumaSlab
impl UnsafeUnpin for NumaSlab
impl UnwindSafe for NumaSlab
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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