Struct sgx_sync::StaticMutex

source ·
pub struct StaticMutex(/* private fields */);
Expand description

An SGX-based mutual exclusion lock, meant for use in static variables.

This mutex has a const constructor (StaticMutex::new), does not implement Drop to cleanup resources, and causes UB when used reentrantly.

This mutex does not implement poisoning.

This is a wrapper around imp::Mutex that does not call init() and destroy().

Implementations§

source§

impl StaticMutex

source

pub const fn new() -> StaticMutex

Creates a new mutex for use.

source

pub unsafe fn lock(&'static self) -> StaticMutexGuard

Calls raw_lock() and then returns an RAII guard to guarantee the mutex will be unlocked.

It is undefined behaviour to call this function while locked by the same thread.

Trait Implementations§

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.