Skip to main content

RwLock

Struct RwLock 

Source
pub struct RwLock<T>(/* private fields */);
Expand description

A reader-writer lock assuming lock poisoning will never occur.

Implementations§

Source§

impl<T> RwLock<T>

Source

pub fn new(t: T) -> RwLock<T>

Creates a new instance of an RwLock<T> which is unlocked.

Source

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.

Source

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.

Source

pub fn into_inner(self) -> T

Consumes this rwlock, returning the underlying data.

Source

pub fn get_mut(&mut self) -> &mut T

Returns a mutable reference to the underlying data.

Since this call borrows the RwLock mutably, no actual locking needs to take place.

Trait Implementations§

Source§

impl<T: Debug> Debug for RwLock<T>

Source§

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

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

impl<T: Default> Default for RwLock<T>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<T, I: Ip> GenericOverIp<I> for RwLock<T>
where T: GenericOverIp<I>,

Source§

type Type = RwLock<<T as GenericOverIp<I>>::Type>

The type of Self when its IP-generic parameter is replaced with the type NewIp.
Source§

impl<T: 'static> ReadWriteLock<T> for RwLock<T>

Source§

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>

The guard type returned when locking for writes (i.e. exclusive).
Source§

fn read_lock(&self) -> Self::ReadGuard<'_>

Locks this lock for reading.
Source§

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>
where T: Send + Sync,

§

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> 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<B, A> LockBefore<B> for A
where B: LockAfter<A>,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<L, T> UnlockedAccess<L> for T

Source§

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

A guard providing read access to the data.
Source§

fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>

How to access the state.