Struct futures_channel::lock::Lock

source ·
pub(crate) struct Lock<T> {
    locked: AtomicBool,
    data: UnsafeCell<T>,
}
Expand description

A “mutex” around a value, similar to std::sync::Mutex<T>.

This lock only supports the try_lock operation, however, and does not implement poisoning.

Fields§

§locked: AtomicBool§data: UnsafeCell<T>

Implementations§

source§

impl<T> Lock<T>

source

pub(crate) fn new(t: T) -> Self

Creates a new lock around the given value.

source

pub(crate) fn try_lock(&self) -> Option<TryLock<'_, T>>

Attempts to acquire this lock, returning whether the lock was acquired or not.

If Some is returned then the data this lock protects can be accessed through the sentinel. This sentinel allows both mutable and immutable access.

If None is returned then the lock is already locked, either elsewhere on this thread or on another thread.

Trait Implementations§

source§

impl<T: Debug> Debug for Lock<T>

source§

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

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

impl<T: Send> Send for Lock<T>

source§

impl<T: Send> Sync for Lock<T>

Auto Trait Implementations§

§

impl<T> !Freeze for Lock<T>

§

impl<T> !RefUnwindSafe for Lock<T>

§

impl<T> Unpin for Lock<T>
where T: Unpin,

§

impl<T> UnwindSafe for Lock<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<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.