Trait syncbox::atomic::Atomic [] [src]

pub trait Atomic<T>: Send + Sync {
    fn new(val: T) -> Self;
    fn load(&self, order: Ordering) -> T;
    fn store(&self, val: T, order: Ordering);
    fn swap(&self, val: T, order: Ordering) -> T;
    fn compare_and_swap(&self, old: T, new: T, order: Ordering) -> T;
}

An atomic box

Required Methods

fn new(val: T) -> Self

Returns a new atomic box

fn load(&self, order: Ordering) -> T

Atomically loads the value from the box with the given ordering

fn store(&self, val: T, order: Ordering)

Atomically stores the value from the box with the given ordering

fn swap(&self, val: T, order: Ordering) -> T

Atomically swaps the value in the box with the given ordering

fn compare_and_swap(&self, old: T, new: T, order: Ordering) -> T

Swaps the value in the box if and only if the existing value is equal to old.

Implementors