Struct parking_lot::RwLockReadGuard[][src]

#[must_use]
pub struct RwLockReadGuard<'a, T: ?Sized + 'a> { /* fields omitted */ }

RAII structure used to release the shared read access of a lock when dropped.

Methods

impl<'a, T: ?Sized + 'a> RwLockReadGuard<'a, T>
[src]

Unlocks the RwLock using a fair unlock protocol.

By default, RwLock is unfair and allow the current thread to re-lock the rwlock before another has the chance to acquire the lock, even if that thread has been blocked on the RwLock for a long time. This is the default because it allows much higher throughput as it avoids forcing a context switch on every rwlock unlock. This can result in one thread acquiring a RwLock many more times than other threads.

However in some cases it can be beneficial to ensure fairness by forcing the lock to pass on to a waiting thread if there is one. This is done by using this method instead of dropping the RwLockReadGuard normally.

Make a new RwLockReadGuard for a component of the locked data.

This operation cannot fail as the RwLockReadGuard passed in already locked the 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.

Trait Implementations

impl<'a, T: ?Sized + Sync + 'a> Sync for RwLockReadGuard<'a, T>
[src]

impl<'a, T: ?Sized + 'a> Deref for RwLockReadGuard<'a, T>
[src]

The resulting type after dereferencing.

Dereferences the value.

impl<'a, T: ?Sized + 'a> Drop for RwLockReadGuard<'a, T>
[src]

Executes the destructor for this type. Read more

impl<'a, T: ?Sized> StableAddress for RwLockReadGuard<'a, T>
[src]

Auto Trait Implementations

impl<'a, T> !Send for RwLockReadGuard<'a, T>