pub struct ReaderSlot {
pub pid: AtomicU32,
pub snapshot_ts: AtomicU64,
pub epoch: AtomicU32,
pub last_heartbeat: AtomicU64,
/* private fields */
}Expand description
Reader slot in shared memory (64 bytes = 1 cache line)
Each active reader registers in a slot to prevent GC from reclaiming versions it might need.
Fields§
§pid: AtomicU32Process ID (0 = slot is free)
snapshot_ts: AtomicU64Snapshot timestamp this reader is using
epoch: AtomicU32Epoch number when reader registered
last_heartbeat: AtomicU64Last heartbeat (microseconds since epoch)
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ReaderSlot
impl RefUnwindSafe for ReaderSlot
impl Send for ReaderSlot
impl Sync for ReaderSlot
impl Unpin for ReaderSlot
impl UnwindSafe for ReaderSlot
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
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