[−][src]Struct bare_metal::CriticalSection
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() -> Self
[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]
fn clone(&self) -> CriticalSection<'cs>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'cs> Copy for CriticalSection<'cs>
[src]
impl<'cs> Debug for CriticalSection<'cs>
[src]
Auto Trait Implementations
impl<'cs> Send for CriticalSection<'cs>
impl<'cs> Sync for CriticalSection<'cs>
impl<'cs> Unpin for CriticalSection<'cs>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,