pub struct LockGuard { /* private fields */ }Expand description
Owned proof that the holder currently has exclusive access to a key.
Drop semantics: when a LockGuard is dropped without an explicit
DistributedLock::release call, a tracing::warn! records the
leak. The lock will still expire by TTL, so correctness is
preserved, but the warning surfaces forgotten release calls in
telemetry.
Implementations§
Source§impl LockGuard
impl LockGuard
Sourcepub fn new(key: AdvisoryKey) -> Self
pub fn new(key: AdvisoryKey) -> Self
Construct a guard. Backend DistributedLock impls call this
after a successful acquire — the token is the per-acquire
ownership marker the backend stores alongside the lock value.
Sourcepub const fn key(&self) -> &AdvisoryKey
pub const fn key(&self) -> &AdvisoryKey
Borrow the lock key.
Sourcepub fn mark_released(&mut self)
pub fn mark_released(&mut self)
Mark the guard as released — backend DistributedLock impls
call this from release() so the Drop impl does not warn.
Outside backend code there is no reason to call this directly.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LockGuard
impl RefUnwindSafe for LockGuard
impl Send for LockGuard
impl Sync for LockGuard
impl Unpin for LockGuard
impl UnsafeUnpin for LockGuard
impl UnwindSafe for LockGuard
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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