Struct GLockGuard

Source
pub struct GLockGuard<'lck, T: 'lck> { /* private fields */ }
Expand description

A GLockGuard represents an acquired lock instance of any type. It can be used to access the protected data. The lock is released by dropping the GLockGuard object.

Implementations§

Source§

impl<'lck, T: 'lck> GLockGuard<'lck, T>

Source

pub fn lock_type(&self) -> LockResult<LockType>

Returns the type of the lock currently held.

Source

pub fn upgrade(&self, to_type: LockType) -> LockResult<()>

Upgrades the type of this GLockGuard to the specified type. If parent lock does not support the new type, it will be upgraded as well. If the lock is currently busy, it will block until it is ready.

Source

pub fn try_upgrade(&self, to_type: LockType) -> LockResult<()>

Attempts to upgrade the type of this GLockGuard to the specified type. If parent lock does not support the new type, it will be upgraded as well. If the lock is currently busy, it will return a LockError::LockBusy error.

Source

pub fn upgrade_to_exclusive( self, ) -> Result<GLockGuardMut<'lck, T>, (LockError, GLockGuard<'lck, T>)>

Upgrades the type of this GLockGuard to Exclusive. If parent lock does not support the new type, it will be upgraded as well. If the lock is currently busy, it will block until it is ready.

This method consumes the current GLockGuard and returns a new GLockGuardMut. In case of failure, it will return a tuple containing the error as well as the original GLockGuard.

Source

pub fn try_upgrade_to_exclusive( self, ) -> Result<GLockGuardMut<'lck, T>, (LockError, GLockGuard<'lck, T>)>

Attempts to upgrade the type of this GLockGuard to Exclusive. If parent lock does not support the new type, it will be upgraded as well. If the lock is currently busy, If the lock is currently busy, it will return a LockError::LockBusy error.

This method consumes the current GLockGuard and returns a new GLockGuardMut. In case of failure, it will return a tuple containing the error as well as the original GLockGuard.

Trait Implementations§

Source§

impl<'lck, T: Debug + 'lck> Debug for GLockGuard<'lck, T>

Source§

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

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

impl<'lck, T: 'lck> Deref for GLockGuard<'lck, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &<Self as Deref>::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'lck, T> Freeze for GLockGuard<'lck, T>

§

impl<'lck, T> RefUnwindSafe for GLockGuard<'lck, T>
where T: RefUnwindSafe,

§

impl<'lck, T> Send for GLockGuard<'lck, T>
where T: Sync,

§

impl<'lck, T> Sync for GLockGuard<'lck, T>
where T: Sync,

§

impl<'lck, T> Unpin for GLockGuard<'lck, T>

§

impl<'lck, T> UnwindSafe for GLockGuard<'lck, T>
where T: RefUnwindSafe,

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.