pub struct SpscQueue { /* private fields */ }Expand description
Single-producer single-consumer lock-free ring buffer.
This implementation is optimized for the common case of one producer (host) and one consumer (GPU kernel).
Implementations§
Trait Implementations§
Source§impl MessageQueue for SpscQueue
impl MessageQueue for SpscQueue
Source§fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<()>
fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<()>
Try to enqueue a message envelope.
Source§fn try_dequeue(&self) -> Result<MessageEnvelope>
fn try_dequeue(&self) -> Result<MessageEnvelope>
Try to dequeue a message envelope.
Source§fn stats(&self) -> QueueStats
fn stats(&self) -> QueueStats
Get queue statistics.
Source§fn reset_stats(&self)
fn reset_stats(&self)
Reset queue statistics.
Auto Trait Implementations§
impl !Freeze for SpscQueue
impl !RefUnwindSafe for SpscQueue
impl Send for SpscQueue
impl Sync for SpscQueue
impl Unpin for SpscQueue
impl UnwindSafe for SpscQueue
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.