pub trait MessageQueue: Send + Sync {
// Required methods
fn capacity(&self) -> usize;
fn len(&self) -> usize;
fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<()>;
fn try_dequeue(&self) -> Result<MessageEnvelope>;
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§
Sourcefn try_enqueue(&self, envelope: MessageEnvelope) -> Result<()>
fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<()>
Try to enqueue a message envelope.
Sourcefn try_dequeue(&self) -> Result<MessageEnvelope>
fn try_dequeue(&self) -> Result<MessageEnvelope>
Try to dequeue a message envelope.
Sourcefn stats(&self) -> QueueStats
fn stats(&self) -> QueueStats
Get queue statistics.
Sourcefn reset_stats(&self)
fn reset_stats(&self)
Reset queue statistics.