pub(crate) struct RoomLifecycle {
state: Arc<Mutex<RoomLifecycleState>>,
}Expand description
cloneable admission gate for the current room stored in one directory row
this type coordinates manager-level liveness only
room membership ordering
remains owned by Room and its state transition methods
Fields§
§state: Arc<Mutex<RoomLifecycleState>>Implementations§
Source§impl RoomLifecycle
impl RoomLifecycle
pub(crate) fn new(reservation_ttl: Duration) -> Self
Sourcepub(crate) fn claim_expired_reservation(&self) -> bool
pub(crate) fn claim_expired_reservation(&self) -> bool
atomically claims cleanup responsibility for an expired, idle reservation.
Sourcepub(crate) fn renew_reservation(&self)
pub(crate) fn renew_reservation(&self)
extends a room reservation without rearming it
Sourcepub(crate) fn begin(&self) -> Option<RoomLifecycleLease>
pub(crate) fn begin(&self) -> Option<RoomLifecycleLease>
accept a new current-room operation
None means empty-room removal is pending or already won
callers must
still validate that the room pointer is current after acquiring the lease
Trait Implementations§
Source§impl Clone for RoomLifecycle
impl Clone for RoomLifecycle
Source§fn clone(&self) -> RoomLifecycle
fn clone(&self) -> RoomLifecycle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for RoomLifecycle
impl RefUnwindSafe for RoomLifecycle
impl Send for RoomLifecycle
impl Sync for RoomLifecycle
impl Unpin for RoomLifecycle
impl UnsafeUnpin for RoomLifecycle
impl UnwindSafe for RoomLifecycle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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