MessageQueue

Trait MessageQueue 

Source
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§

Source

fn capacity(&self) -> usize

Get the queue capacity.

Source

fn len(&self) -> usize

Get current queue size.

Source

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

Try to enqueue a message envelope.

Source

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

Try to dequeue a message envelope.

Source

fn stats(&self) -> QueueStats

Get queue statistics.

Source

fn reset_stats(&self)

Reset queue statistics.

Provided Methods§

Source

fn is_empty(&self) -> bool

Check if queue is empty.

Source

fn is_full(&self) -> bool

Check if queue is full.

Implementors§