pub struct RwLock<T>(/* private fields */);Expand description
A reader-writer lock assuming lock poisoning will never occur.
Implementations§
Source§impl<T> RwLock<T>
impl<T> RwLock<T>
Sourcepub fn read(&self) -> RwLockReadGuard<'_, T>
pub fn read(&self) -> RwLockReadGuard<'_, T>
Locks this rwlock with shared read access, blocking the current thread until it can be acquired.
§Panics
This method may panic if the calling thread already holds the read or write lock.
Sourcepub fn write(&self) -> RwLockWriteGuard<'_, T>
pub fn write(&self) -> RwLockWriteGuard<'_, T>
Locks this rwlock with exclusive write access, blocking the current thread until it can be acquired.
§Panics
This method may panic if the calling thread already holds the read or write lock.
Sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Consumes this rwlock, returning the underlying data.
Trait Implementations§
Source§impl<T, I: Ip> GenericOverIp<I> for RwLock<T>where
T: GenericOverIp<I>,
impl<T, I: Ip> GenericOverIp<I> for RwLock<T>where
T: GenericOverIp<I>,
Source§impl<T: 'static> ReadWriteLock<T> for RwLock<T>
impl<T: 'static> ReadWriteLock<T> for RwLock<T>
Source§type ReadGuard<'l> = RwLockReadGuard<'l, RawSyncRwLock, T>
type ReadGuard<'l> = RwLockReadGuard<'l, RawSyncRwLock, T>
The guard type returned when locking for reads (i.e. shared).
Source§type WriteGuard<'l> = RwLockWriteGuard<'l, RawSyncRwLock, T>
type WriteGuard<'l> = RwLockWriteGuard<'l, RawSyncRwLock, T>
The guard type returned when locking for writes (i.e. exclusive).
Source§fn write_lock(&self) -> Self::WriteGuard<'_>
fn write_lock(&self) -> Self::WriteGuard<'_>
Locks this lock for writing.
Auto Trait Implementations§
impl<T> !Freeze for RwLock<T>
impl<T> !RefUnwindSafe for RwLock<T>
impl<T> Send for RwLock<T>where
T: Send,
impl<T> Sync for RwLock<T>
impl<T> Unpin for RwLock<T>where
T: Unpin,
impl<T> UnsafeUnpin for RwLock<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for RwLock<T>where
T: UnwindSafe,
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
impl<B, A> LockBefore<B> for Awhere
B: LockAfter<A>,
Source§impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
Source§type Data = <L as UnlockedAccessMarkerFor<T>>::Data
type Data = <L as UnlockedAccessMarkerFor<T>>::Data
The type of state being accessed.
Source§type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data
where
T: 'l
type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l
A guard providing read access to the data.
Source§fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
How to access the state.