TaskQueue

Trait TaskQueue 

Source
pub trait TaskQueue {
    type E;

    // Required methods
    fn push(&mut self, task: Self::E) -> bool;
    fn pop_local(&self, threshold: usize) -> Option<Self::E>;
    fn pop_global(&self) -> PopResult<Self::E>;
    fn size(&self) -> usize;
    fn invalidate_last_queue_id(&mut self);
    fn last_stolen_queue_id(&self) -> usize;
    fn set_last_stolen_queue_id(&mut self, id: usize);
    fn next_random_queue_id(&mut self) -> i32;
    fn is_empty(&self) -> bool;
}

Required Associated Types§

Source

type E

Required Methods§

Source

fn push(&mut self, task: Self::E) -> bool

Source

fn pop_local(&self, threshold: usize) -> Option<Self::E>

Source

fn pop_global(&self) -> PopResult<Self::E>

Source

fn size(&self) -> usize

Source

fn invalidate_last_queue_id(&mut self)

Source

fn last_stolen_queue_id(&self) -> usize

Source

fn set_last_stolen_queue_id(&mut self, id: usize)

Source

fn next_random_queue_id(&mut self) -> i32

Source

fn is_empty(&self) -> bool

Implementors§

Source§

impl<E, const N: usize> TaskQueue for GenericTaskQueue<E, N>

Source§

type E = E

Source§

impl<E: Copy, const N: usize> TaskQueue for OverflowTaskQueue<E, N>

Source§

type E = E