pub(crate) struct RoomLifecycleLease {
state: Arc<Mutex<RoomLifecycleState>>,
finished: bool,
}Expand description
cancellation-safe permit for work accepted against a directory entry
dropping the lease releases admission without requesting removal
manager
teardown paths call Self::finish after checking whether the room is empty
Fields§
§state: Arc<Mutex<RoomLifecycleState>>shared lease state for the directory entry that accepted this work
finished: boolguards against double release when finish, cancel or Drop overlap
Implementations§
Source§impl RoomLifecycleLease
impl RoomLifecycleLease
Sourcepub(crate) fn cancel(self)
pub(crate) fn cancel(self)
release a lease that was accepted for a stale directory row
this is separate from Drop so stale-current validation can be explicit
at the manager boundary
Sourcepub(crate) fn finish(
self,
remove_if_empty: bool,
room_can_be_removed: bool,
) -> bool
pub(crate) fn finish( self, remove_if_empty: bool, room_can_be_removed: bool, ) -> bool
Releases the lease and returns whether this caller claimed directory removal.
fn release(&mut self, remove_if_empty: bool, room_can_be_removed: bool) -> bool
pub(crate) fn clear_expiration(&self)
Trait Implementations§
Source§impl Debug for RoomLifecycleLease
impl Debug for RoomLifecycleLease
Auto Trait Implementations§
impl Freeze for RoomLifecycleLease
impl RefUnwindSafe for RoomLifecycleLease
impl Send for RoomLifecycleLease
impl Sync for RoomLifecycleLease
impl Unpin for RoomLifecycleLease
impl UnsafeUnpin for RoomLifecycleLease
impl UnwindSafe for RoomLifecycleLease
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more