pub struct Ebr<T: Send + 'static, const SLOTS: usize = 128, const BUMP_EPOCH_OPS: usize = 128> { /* private fields */ }
Expand description
Epoch-based garbage collector with extremely efficient single-threaded operations in the hot-path.
The SLOTS
const generic specifies how large the local
garbage bags should be allowed to grow before marking
them with the current monotonic timestamp and placing
them into a local queue for destruction.
If an Ebr
is dropped while it has un-reclaimed garbage,
it sends its current garbage bag to another thread
to cooperatively reclaim after any potentially witnessing
thread has finished its work.
Implementations§
Trait Implementations§
source§impl<T: Send + 'static, const SLOTS: usize, const BUMP_EPOCH_OPS: usize> Clone for Ebr<T, SLOTS, BUMP_EPOCH_OPS>
impl<T: Send + 'static, const SLOTS: usize, const BUMP_EPOCH_OPS: usize> Clone for Ebr<T, SLOTS, BUMP_EPOCH_OPS>
Auto Trait Implementations§
impl<T, const SLOTS: usize = 128, const BUMP_EPOCH_OPS: usize = 128> !RefUnwindSafe for Ebr<T, SLOTS, BUMP_EPOCH_OPS>
impl<T, const SLOTS: usize, const BUMP_EPOCH_OPS: usize> Send for Ebr<T, SLOTS, BUMP_EPOCH_OPS>
impl<T, const SLOTS: usize = 128, const BUMP_EPOCH_OPS: usize = 128> !Sync for Ebr<T, SLOTS, BUMP_EPOCH_OPS>
impl<T, const SLOTS: usize, const BUMP_EPOCH_OPS: usize> Unpin for Ebr<T, SLOTS, BUMP_EPOCH_OPS>where T: Unpin,
impl<T, const SLOTS: usize, const BUMP_EPOCH_OPS: usize> UnwindSafe for Ebr<T, SLOTS, BUMP_EPOCH_OPS>where T: UnwindSafe,
Blanket Implementations§
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