[][src]Trait locklessness::primitives::atomic_ext::AtomicExt

pub trait AtomicExt {
    type Value: Copy + Eq;
    fn load_impl(&self, ordering: Ordering) -> Self::Value;
fn compare_exchange_weak_impl(
        &self,
        current: Self::Value,
        new: Self::Value,
        success: Ordering,
        failure: Ordering
    ) -> Result<Self::Value, Self::Value>; fn try_update<E, F: FnMut(Self::Value) -> Result<Self::Value, E>>(
        &self,
        f: F
    ) -> Result<(Self::Value, Self::Value), E> { ... }
fn try_update_indirect<'a, A: AtomicExt + 'a, E, F: FnMut(Self::Value) -> Result<&'a A, E>, G: FnMut(Self::Value, A::Value) -> Result<A::Value, E>>(
        &self,
        deref: F,
        update: G
    ) -> Result<(Self::Value, A::Value, A::Value), E> { ... } }

Associated Types

type Value: Copy + Eq

Loading content...

Required methods

fn load_impl(&self, ordering: Ordering) -> Self::Value

fn compare_exchange_weak_impl(
    &self,
    current: Self::Value,
    new: Self::Value,
    success: Ordering,
    failure: Ordering
) -> Result<Self::Value, Self::Value>

Loading content...

Provided methods

fn try_update<E, F: FnMut(Self::Value) -> Result<Self::Value, E>>(
    &self,
    f: F
) -> Result<(Self::Value, Self::Value), E>

fn try_update_indirect<'a, A: AtomicExt + 'a, E, F: FnMut(Self::Value) -> Result<&'a A, E>, G: FnMut(Self::Value, A::Value) -> Result<A::Value, E>>(
    &self,
    deref: F,
    update: G
) -> Result<(Self::Value, A::Value, A::Value), E>

Loading content...

Implementations on Foreign Types

impl AtomicExt for AtomicUsize[src]

type Value = usize

impl AtomicExt for AtomicIsize[src]

type Value = isize

impl<T> AtomicExt for AtomicPtr<T>[src]

type Value = *mut T

Loading content...

Implementors

Loading content...