Struct std::sys::unix::locks::futex_rwlock::RwLock

source ·
pub struct RwLock {
    state: AtomicU32,
    writer_notify: AtomicU32,
}

Fields§

§state: AtomicU32§writer_notify: AtomicU32

Implementations§

source§

impl RwLock

source

pub const fn new() -> Self

source

pub fn try_read(&self) -> bool

source

pub fn read(&self)

source

pub unsafe fn read_unlock(&self)

source

fn read_contended(&self)

source

pub fn try_write(&self) -> bool

source

pub fn write(&self)

source

pub unsafe fn write_unlock(&self)

source

fn write_contended(&self)

source

fn wake_writer_or_readers(&self, state: u32)

Wake up waiting threads after unlocking.

If both are waiting, this will wake up only one writer, but will fall back to waking up readers if there was no writer to wake up.

source

fn wake_writer(&self) -> bool

This wakes one writer and returns true if we woke up a writer that was blocked on futex_wait.

If this returns false, it might still be the case that we notified a writer that was about to go to sleep.

source

fn spin_until(&self, f: impl Fn(u32) -> bool) -> u32

Spin for a while, but stop directly at the given condition.

source

fn spin_write(&self) -> u32

source

fn spin_read(&self) -> u32

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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.