pub struct MutexGuard<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> { /* private fields */ }Expand description
A guard holding access for a Mutex. When dropped, the lock is released.
If the evict flag is enabled, higher priority requesters will mark held locks for eviction,
which can be subscribed to via Self::evicted (associated function).
Implementations§
Source§impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> MutexGuard<'a, P, T, Q>
Sourcepub fn evicted(this: &mut Self) -> impl Future<Output = ()>
pub fn evicted(this: &mut Self) -> impl Future<Output = ()>
Returns a future which resolves when/if another, higher priority holder attempts to acquire the lock.
Note: this is an associated method to avoid colision with methods of T. Invoke via
MutexGuard::evicted(&mut self).
Cancel Safety: This function is cancel safe.
Trait Implementations§
Source§impl<'a, P: Priority, T, Q: MutexQueue<P>> Debug for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T, Q: MutexQueue<P>> Debug for MutexGuard<'a, P, T, Q>
Source§impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> Deref for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> Deref for MutexGuard<'a, P, T, Q>
Source§impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> DerefMut for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> DerefMut for MutexGuard<'a, P, T, Q>
Source§impl<'a, P: Priority, T, Q: MutexQueue<P>> Display for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T, Q: MutexQueue<P>> Display for MutexGuard<'a, P, T, Q>
Source§impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> Drop for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T: ?Sized, Q: MutexQueue<P>> Drop for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T: ?Sized + Send, Q: MutexQueue<P>> Send for MutexGuard<'a, P, T, Q>
impl<'a, P: Priority, T: ?Sized + Sync, Q: MutexQueue<P>> Sync for MutexGuard<'a, P, T, Q>
Auto Trait Implementations§
impl<'a, P, T, Q> Freeze for MutexGuard<'a, P, T, Q>
impl<'a, P, T, Q> !RefUnwindSafe for MutexGuard<'a, P, T, Q>
impl<'a, P, T, Q> Unpin for MutexGuard<'a, P, T, Q>
impl<'a, P, T, Q> UnsafeUnpin for MutexGuard<'a, P, T, Q>
impl<'a, P, T, Q> !UnwindSafe for MutexGuard<'a, P, T, Q>
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