pub struct ShmHandle {
pub path: PathBuf,
pub header: ShmHeader,
pub state: ShmProvisionState,
/* private fields */
}Expand description
Handle to the provisioned -shm file. Drop semantics intentionally
minimal in this slice — callers must invoke Self::detach_reader
explicitly to mirror the eventual mmap-backed lifecycle.
Fields§
§path: PathBuf§header: ShmHeader§state: ShmProvisionStateImplementations§
Source§impl ShmHandle
impl ShmHandle
Sourcepub fn generation(&self) -> u64
pub fn generation(&self) -> u64
Current generation counter. Bumps on every crash recovery so observers can detect that ownership changed between snapshots.
Sourcepub fn attach_reader(&mut self) -> Result<u64>
pub fn attach_reader(&mut self) -> Result<u64>
Increment the on-disk reader counter. Returns the new count.
Sourcepub fn detach_reader(&mut self) -> Result<u64>
pub fn detach_reader(&mut self) -> Result<u64>
Decrement the on-disk reader counter (saturating). Returns new count.
Auto Trait Implementations§
impl Freeze for ShmHandle
impl RefUnwindSafe for ShmHandle
impl Send for ShmHandle
impl Sync for ShmHandle
impl Unpin for ShmHandle
impl UnsafeUnpin for ShmHandle
impl UnwindSafe for ShmHandle
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request