#[repr(C, align(64))]pub struct MpscQueue {
pub write: IndexbusAtomicU64,
pub pad0: [u8; 56],
pub read: IndexbusAtomicU64,
pub pad1: [u8; 56],
pub seq: [IndexbusAtomicU64; 1024],
pub buf: [u32; 1024],
}Expand description
Multi-producer/single-consumer queue using per-slot sequence numbers.
Fields§
§write: IndexbusAtomicU64Producer reservation cursor.
pad0: [u8; 56]Padding to keep counters in separate cache lines.
read: IndexbusAtomicU64Consumer cursor (single consumer).
pad1: [u8; 56]Padding to keep counters in separate cache lines.
seq: [IndexbusAtomicU64; 1024]Per-slot sequence numbers.
buf: [u32; 1024]Per-slot stored values (slot indices).
Auto Trait Implementations§
impl !Freeze for MpscQueue
impl !RefUnwindSafe for MpscQueue
impl Send for MpscQueue
impl Sync for MpscQueue
impl Unpin for MpscQueue
impl UnwindSafe for MpscQueue
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