Skip to main content

PendingClusters

Struct PendingClusters 

Source
pub(super) struct PendingClusters {
    clusters_to_free: Arc<ClustersToFreeList>,
    entry: Option<ClustersToFreeEntry>,
}
Expand description

Guard for newly allocated clusters that are not yet referenced by any metadata.

If the operation that allocated them fails or is cancelled (i.e. its future is dropped) before it can reference them, dropping this guard enters them into ClustersToFreeList, so they are not leaked. Once they are referenced (at least in memory), disarm the guard.

Fields§

§clusters_to_free: Arc<ClustersToFreeList>

List to enter the clusters into.

§entry: Option<ClustersToFreeEntry>

The clusters; None when disarmed.

Implementations§

Source§

impl PendingClusters

Source

pub fn cluster(&self) -> HostCluster

First cluster of the allocation.

Source

pub fn make_persistent(self)

Disarm the guard, moving the clusters from a pending state (to be freed when something goes wrong) to a permanent state, because they are referenced now.

Trait Implementations§

Source§

impl Drop for PendingClusters

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more