MessageQueue

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 capacity(&self) -> usize

Get the queue capacity.

fn len(&self) -> usize

Get current queue size.

fn try_enqueue(&self, envelope: MessageEnvelope) -> Result<(), RingKernelError>

Try to enqueue a message envelope.

fn try_dequeue(&self) -> Result<MessageEnvelope, RingKernelError>

Try to dequeue a message envelope.

fn stats(&self) -> QueueStats

Get queue statistics.

fn reset_stats(&self)

Reset queue statistics.

Provided Methods§

fn is_empty(&self) -> bool

Check if queue is empty.

fn is_full(&self) -> bool

Check if queue is full.

Implementors§