pub struct RwLockReadGuard<'a, R: RawRwLock, T: ?Sized> { /* private fields */ }Expand description
Implementations§
Source§impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> RwLockReadGuard<'a, R, T>
impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> RwLockReadGuard<'a, R, T>
Sourcepub fn rwlock(s: &Self) -> &'a RwLock<R, T>
pub fn rwlock(s: &Self) -> &'a RwLock<R, T>
Returns a reference to the original reader-writer lock object.
Sourcepub fn map<U: ?Sized, F>(s: Self, f: F) -> MappedRwLockReadGuard<'a, R, U>
pub fn map<U: ?Sized, F>(s: Self, f: F) -> MappedRwLockReadGuard<'a, R, U>
Makes a new MappedRwLockReadGuard for a component of the locked data.
This is an associated function that needs to be
used as RwLockReadGuard::map(...). A method would interfere with methods of
the same name on the contents of the locked data.
§Panics
If f panics, the original guard is dropped.
Sourcepub fn try_map<U: ?Sized, F>(
s: Self,
f: F,
) -> Result<MappedRwLockReadGuard<'a, R, U>, Self>
pub fn try_map<U: ?Sized, F>( s: Self, f: F, ) -> Result<MappedRwLockReadGuard<'a, R, U>, Self>
Attempts to make a new MappedRwLockReadGuard for a component of the
locked data. Returns the original guard if the closure returns None.
This is an associated function that needs to be
used as RwLockReadGuard::try_map(...). A method would interfere with methods of
the same name on the contents of the locked data.
§Panics
If f panics, the original guard is dropped.
Sourcepub fn try_map_or_err<U: ?Sized, F, E>(
s: Self,
f: F,
) -> Result<MappedRwLockReadGuard<'a, R, U>, (Self, E)>
pub fn try_map_or_err<U: ?Sized, F, E>( s: Self, f: F, ) -> Result<MappedRwLockReadGuard<'a, R, U>, (Self, E)>
Attempts to make a new MappedRwLockReadGuard for a component of the
locked data. The original guard is returned alongside arbitrary user data
if the closure returns Err.
This is an associated function that needs to be
used as RwLockReadGuard::try_map_or_err(...). A method would interfere with methods of
the same name on the contents of the locked data.
§Panics
If f panics, the original guard is dropped.
Sourcepub fn unlocked<F, U>(s: &mut Self, f: F) -> Uwhere
F: FnOnce() -> U,
pub fn unlocked<F, U>(s: &mut Self, f: F) -> Uwhere
F: FnOnce() -> U,
Temporarily unlocks the RwLock to execute the given function.
The mutable reference ensures that no references derived from this guard are live while the lock is temporarily released.
§Aborts
Aborts if re-locking the RwLock panics.
Source§impl<'a, R: RawRwLockFair + 'a, T: ?Sized + 'a> RwLockReadGuard<'a, R, T>
impl<'a, R: RawRwLockFair + 'a, T: ?Sized + 'a> RwLockReadGuard<'a, R, T>
Sourcepub fn unlock_fair(s: Self)
pub fn unlock_fair(s: Self)
Unlocks the RwLock using a fair unlock protocol.
A fair unlock gives waiting threads priority over new acquisition attempts. This can prevent starvation, but may reduce throughput by forcing a context switch.
Sourcepub fn unlocked_fair<F, U>(s: &mut Self, f: F) -> Uwhere
F: FnOnce() -> U,
pub fn unlocked_fair<F, U>(s: &mut Self, f: F) -> Uwhere
F: FnOnce() -> U,
Temporarily unlocks the RwLock to execute the given function.
The RwLock is unlocked using a fair unlock protocol.
The mutable reference ensures that no references derived from this guard are live while the lock is temporarily released.
§Aborts
Aborts if re-locking the RwLock panics.