[][src]Enum crndm::stm::Notifier

pub enum Notifier<A: MemPool> {
    Atomic(Ptr<u8, A>),
    NonAtomic(Ptr<u8, A>),
    None,
}

A data-log notification type

This is used to notify the owner that the underlying data is logged, so that theres is no need for further log taking. This is done by updating a flag of type u8 which is a part of the owner's structure. The Notifier object keeps a pointer to the flag and updates it accordingly. The pointer is persistent meaning that it remains valid after restart of crash.

Variants

Atomic(Ptr<u8, A>)

Atomically update the log flag

NonAtomic(Ptr<u8, A>)

Non-atomically update the flag

None

There is no log flag

Implementations

impl<A: MemPool> Notifier<A>[src]

pub fn update(&mut self, v: u8)[src]

Update the owner's flag

pub fn off(&self) -> u64[src]

Returns the offset of the log flag in the pool.

The notifier contains a pointer to the flag which is a part of the owner construct. If there is no specified flag, it returns u64::MAX.

Trait Implementations

impl<A: MemPool> Clone for Notifier<A>[src]

impl<A: MemPool> Copy for Notifier<A>[src]

Auto Trait Implementations

impl<A> LooseTxInUnsafe for Notifier<A> where
    A: LooseTxInUnsafe
[src]

impl<A> PSafe for Notifier<A>[src]

impl<A> RefUnwindSafe for Notifier<A> where
    A: RefUnwindSafe
[src]

impl<A> !Send for Notifier<A>[src]

impl<A> !Sync for Notifier<A>[src]

impl<A> TxInSafe for Notifier<A> where
    A: TxInSafe
[src]

impl<A> !TxOutSafe for Notifier<A>[src]

impl<A> Unpin for Notifier<A> where
    A: Unpin
[src]

impl<A> UnwindSafe for Notifier<A> where
    A: UnwindSafe
[src]

impl<A> VSafe for Notifier<A> where
    A: VSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,