axstd/sync/
mod.rs

1//! Useful synchronization primitives.
2
3#[doc(no_inline)]
4pub use core::sync::atomic;
5
6#[cfg(feature = "alloc")]
7#[doc(no_inline)]
8pub use alloc::sync::{Arc, Weak};
9
10#[cfg(feature = "multitask")]
11mod mutex;
12
13#[cfg(feature = "multitask")]
14#[doc(cfg(feature = "multitask"))]
15pub use self::mutex::{Mutex, MutexGuard};
16
17#[cfg(not(feature = "multitask"))]
18#[doc(cfg(not(feature = "multitask")))]
19pub use kspin::{SpinRaw as Mutex, SpinRawGuard as MutexGuard}; // never used in IRQ context