Struct MutexImp

Source
pub struct MutexImp { /* private fields */ }
Expand description

Simple mutex, supporting sleeping and wakeup. Does no attempt at handling priority or fairness.

Implementations§

Source§

impl MutexImp

Source

pub const fn new() -> MutexImp

Construct a new mutex.

Source

pub fn is_locked(&self) -> bool

Source

pub unsafe fn lock(&self, caller: &'static Location<'static>)

Lock a mutex, which can be unlocked by calling [Mutex::unlock].

§Safety

The caller must ensure that they are not recursively locking, that they unlock the mutex correctly, and that any data protected by the mutex is only accessed with the mutex locked.

Note, this is why you should use the standard library mutex, which enforces all of these things.

Source

pub unsafe fn unlock(&self)

Unlock a mutex locked with Mutex::lock.

§Safety

Must be the current owner of the locked mutex and must make sure to unlock properly.

Source

pub unsafe fn try_lock(&self) -> bool

Similar to Mutex::lock, but if we can’t immediately grab the lock, don’t and return false. Return true if we got the lock.

§Safety

Same safety concerns as Mutex::lock, but now you have to check to see if the lock happened or not.

Trait Implementations§

Auto Trait Implementations§

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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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