Struct critical_section::CriticalSection[][src]

pub struct CriticalSection<'cs> { /* fields omitted */ }
Expand description

Critical section token.

An instance of this type indicates that the current core is executing code within a critical section. This means that no interrupts must be enabled that could preempt the currently running code.

Implementations

impl<'cs> CriticalSection<'cs>[src]

pub unsafe fn new() -> CriticalSection<'cs>[src]

Creates a critical section token.

This method is meant to be used to create safe abstractions rather than being directly used in applications.

Safety

This must only be called when the current core is in a critical section. The caller must ensure that the returned instance will not live beyond the end of the critical section. Moreover, the caller must use adequate fences to prevent the compiler from moving the instructions inside the critical section to the outside of it. Sequentially consistent fences are suggested immediately after entry and immediately before exit from the critical section.

Note that the lifetime 'cs of the returned instance is unconstrained. User code must not be able to influence the lifetime picked for this type, since that might cause it to be inferred to 'static.

Trait Implementations

impl<'cs> Clone for CriticalSection<'cs>[src]

pub fn clone(&self) -> CriticalSection<'cs>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<'cs> Debug for CriticalSection<'cs>[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl<'cs> Copy for CriticalSection<'cs>[src]

Auto Trait Implementations

impl<'cs> RefUnwindSafe for CriticalSection<'cs>

impl<'cs> Send for CriticalSection<'cs>

impl<'cs> Sync for CriticalSection<'cs>

impl<'cs> Unpin for CriticalSection<'cs>

impl<'cs> UnwindSafe for CriticalSection<'cs>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.