pub unsafe trait SeqLockable: IntoBytes + Immutable {
const WRITE_SIZE: WriteSize;
const HAS_INLINE_SEQUENCE: bool;
const VMO_NAME: &'static [u8];
}Expand description
Types that are safe to be synchronized across address spaces using a Seqlock.
A type implementing this trait can optionally include the sequence as
its first field, indicated by HAS_INLINE_SEQUENCE. If it does not, SeqLock
will place a u32 atomic sequence number in between the header and value.
§Safety
Types implementing this trait guarantee that they can be safely written
to shared memory in chunks of WRITE_SIZE without introducing undefined
behavior for concurrent readers in other address spaces.
Required Associated Constants§
Sourceconst WRITE_SIZE: WriteSize
const WRITE_SIZE: WriteSize
The chunk size to use when writing to memory, either 4 or 8 bytes.
Sourceconst HAS_INLINE_SEQUENCE: bool
const HAS_INLINE_SEQUENCE: bool
Indicates whether the type includes the u32 sequence as its first field.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.