Struct crossbeam::sync::MsQueue [] [src]

pub struct MsQueue<T> {
    // some fields omitted
}

A Michael-Scott lock-free queue, with support for blocking pops.

Usable with any number of producers and consumers.

Methods

impl<T> MsQueue<T>

fn new() -> MsQueue<T>

Create a new, empty queue.

fn push(&self, t: T)

Add t to the back of the queue, possibly waking up threads blocked on pop.

fn is_empty(&self) -> bool

Check if this queue is empty.

fn try_pop(&self) -> Option<T>

Attempt to dequeue from the front.

Returns None if the queue is observed to be empty.

fn pop(&self) -> T

Dequeue an element from the front of the queue, blocking if the queue is empty.

Trait Implementations

impl<T: Send> Sync for MsQueue<T>

impl<T: Send> Send for MsQueue<T>