Trait MessageQueue
pub trait MessageQueue: Send + Sync {
// Required methods
fn capacity(&self) -> usize;
fn len(&self) -> usize;
fn try_enqueue(
&self,
envelope: MessageEnvelope,
) -> Result<(), RingKernelError>;
fn try_dequeue(&self) -> Result<MessageEnvelope, RingKernelError>;
fn stats(&self) -> QueueStats;
fn reset_stats(&self);
// Provided methods
fn is_empty(&self) -> bool { ... }
fn is_full(&self) -> bool { ... }
}Expand description
Trait for message queue implementations.
Message queues provide lock-free FIFO communication between producers (host or other kernels) and consumers (GPU kernels).
Required Methods§
fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<(), RingKernelError>
fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<(), RingKernelError>
Try to enqueue a message envelope.
fn try_dequeue(&self) -> Result<MessageEnvelope, RingKernelError>
fn try_dequeue(&self) -> Result<MessageEnvelope, RingKernelError>
Try to dequeue a message envelope.
fn stats(&self) -> QueueStats
fn stats(&self) -> QueueStats
Get queue statistics.
fn reset_stats(&self)
fn reset_stats(&self)
Reset queue statistics.