pub enum PublishStrategy {
Scalar,
Movdir64b,
}Expand description
Publish strategy chosen at runtime per CPUID.
Variants§
Scalar
Byte-by-byte store path: the publisher writes items into the mailbox slots through normal cached stores, then Release- stores the state word to READY. Universally available.
Movdir64b
MOVDIR64B path: the publisher builds a 64-byte source line
containing the new state plus all items, then issues one
MOVDIR64B instruction that atomically writes the entire
64-byte mailbox cache line as a Write-Combining store. On
cross-CCX delivery the line is written directly to LLC,
eliminating the M-state coherence transfer the byte-by-byte
path pays. Available on Intel Tremont (2019) / Tiger Lake
(2020) and later Intel cores and AMD Zen 5 (2024) and later
AMD cores; detected via CPUID leaf 7 ECX bit 28.
Implementations§
Trait Implementations§
Source§impl Clone for PublishStrategy
impl Clone for PublishStrategy
Source§fn clone(&self) -> PublishStrategy
fn clone(&self) -> PublishStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for PublishStrategy
Source§impl Debug for PublishStrategy
impl Debug for PublishStrategy
impl Eq for PublishStrategy
Source§impl PartialEq for PublishStrategy
impl PartialEq for PublishStrategy
impl StructuralPartialEq for PublishStrategy
Auto Trait Implementations§
impl Freeze for PublishStrategy
impl RefUnwindSafe for PublishStrategy
impl Send for PublishStrategy
impl Sync for PublishStrategy
impl Unpin for PublishStrategy
impl UnsafeUnpin for PublishStrategy
impl UnwindSafe for PublishStrategy
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