Skip to main content

Replaced

Struct Replaced 

Source
pub struct Replaced<T> { /* private fields */ }
Expand description

A pointer that has been displaced from a AtomicPtr and must be retired.

This type cannot be dereferenced — the value is no longer safely accessible without a hazard guard. The only valid operation is to retire it through a Domain, which schedules it for deferred reclamation.

Dropping a Replaced without retiring it will leak the allocation.

Implementations§

Source§

impl<T> Replaced<T>

Source

pub fn retire(self, domain: &Domain)

Retires this pointer, scheduling it for deferred reclamation.

The pointed-to value will be deallocated once no hazard slot references it. Does nothing if the displaced pointer was null.

Source

pub fn forget(self)

Deliberately discards this Replaced without retiring it.

Use this when the old pointer is still reachable (e.g. from another atomic) and should not be reclaimed.

Trait Implementations§

Source§

impl<T> Drop for Replaced<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Replaced<T>

§

impl<T> RefUnwindSafe for Replaced<T>
where T: RefUnwindSafe,

§

impl<T> !Send for Replaced<T>

§

impl<T> !Sync for Replaced<T>

§

impl<T> Unpin for Replaced<T>

§

impl<T> UnsafeUnpin for Replaced<T>

§

impl<T> UnwindSafe for Replaced<T>
where T: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.