pub struct AtomicPtr<T>(/* private fields */);
Expand description
Mock implementation of std::sync::atomic::AtomicPtr
.
NOTE: Unlike std::sync::atomic::AtomicPtr
, this type has a different
in-memory representation than *mut T
.
Implementations§
source§impl<T> AtomicPtr<T>
impl<T> AtomicPtr<T>
sourcepub unsafe fn unsync_load(&self) -> *mut T
pub unsafe fn unsync_load(&self) -> *mut T
Load the value without any synchronization.
§Safety
An unsynchronized atomic load technically always has undefined behavior.
However, if the atomic value is not currently visible by other threads,
this should always be equivalent to a non-atomic load of an un-shared
*mut T
value.
sourcepub fn with_mut<R>(&mut self, f: impl FnOnce(&mut *mut T) -> R) -> R
pub fn with_mut<R>(&mut self, f: impl FnOnce(&mut *mut T) -> R) -> R
Get access to a mutable reference to the inner value.
sourcepub fn into_inner(self) -> *mut T
pub fn into_inner(self) -> *mut T
Consumes the atomic and returns the contained value.
sourcepub fn swap(&self, val: *mut T, order: Ordering) -> *mut T
pub fn swap(&self, val: *mut T, order: Ordering) -> *mut T
Stores a value into the pointer, returning the previous value.
sourcepub fn compare_and_swap(
&self,
current: *mut T,
new: *mut T,
order: Ordering
) -> *mut T
pub fn compare_and_swap( &self, current: *mut T, new: *mut T, order: Ordering ) -> *mut T
Stores a value into the pointer if the current value is the same as the current
value.
sourcepub fn compare_exchange(
&self,
current: *mut T,
new: *mut T,
success: Ordering,
failure: Ordering
) -> Result<*mut T, *mut T>
pub fn compare_exchange( &self, current: *mut T, new: *mut T, success: Ordering, failure: Ordering ) -> Result<*mut T, *mut T>
Stores a value into the pointer if the current value is the same as the current
value.
sourcepub fn compare_exchange_weak(
&self,
current: *mut T,
new: *mut T,
success: Ordering,
failure: Ordering
) -> Result<*mut T, *mut T>
pub fn compare_exchange_weak( &self, current: *mut T, new: *mut T, success: Ordering, failure: Ordering ) -> Result<*mut T, *mut T>
Stores a value into the atomic if the current value is the same as the current value.