Skip to main content

LockGuard

Struct LockGuard 

Source
pub struct LockGuard { /* private fields */ }
Expand description

RAII guard returned by Lock::lock and Lock::try_lock.

Releases the lock — both the OS primitive and the thread gate — when dropped. The guard keeps the Lock’s backing state alive, so it is safe to drop the originating Lock while the guard is still live.

On Windows, if the previous mutex owner terminated without releasing the lock, the waiting acquisition succeeds but LockGuard::is_abandoned returns true. This can indicate that shared state protected by the lock may be inconsistent. On Unix this method always returns false.

Implementations§

Source§

impl LockGuard

Source

pub fn is_abandoned(&self) -> bool

Returns true if the lock was acquired from an abandoned owner.

This only happens on Windows when the previous owner of the named kernel mutex terminated without releasing the mutex. It signals that any shared state protected by the lock may be in an inconsistent state and should be inspected before reuse.

On Unix this method always returns false.

Trait Implementations§

Source§

impl Debug for LockGuard

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for LockGuard

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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.

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.