1#[cfg(not(feature = "all-one-shot"))]
2pub(crate) mod spin {
3 pub type RawSpinMutex = spinning_top::RawSpinlock<spinning_top::relax::Backoff>;
5
6 pub type SpinMutex<T> = lock_api::Mutex<RawSpinMutex, T>;
8
9 pub type SpinMutexGuard<'a, T> = lock_api::MutexGuard<'a, RawSpinMutex, T>;
11}
12#[cfg(feature = "all-one-shot")]
13pub(crate) mod spin {
14 pub use one_shot_mutex::{
15 OneShotMutex as SpinMutex, OneShotMutexGuard as SpinMutexGuard,
16 RawOneShotMutex as RawSpinMutex,
17 };
18}
19#[cfg(not(feature = "all-one-shot"))]
20pub(crate) mod ticket;
21#[cfg(feature = "all-one-shot")]
22pub(crate) mod ticket {
23 pub use one_shot_mutex::{
24 OneShotMutex as TicketMutex, OneShotMutexGuard as TicketMutexGuard,
25 RawOneShotMutex as RawTicketMutex,
26 };
27}
28
29use interrupt_mutex::RawInterruptMutex;
30use one_shot_mutex::RawOneShotMutex;
31use spin::RawSpinMutex;
32use ticket::RawTicketMutex;
33
34pub type RawInterruptOneShotMutex = RawInterruptMutex<RawOneShotMutex>;
36
37pub type InterruptOneShotMutex<T> = lock_api::Mutex<RawInterruptOneShotMutex, T>;
39
40pub type InterruptOneShotMutexGuard<'a, T> = lock_api::MutexGuard<'a, RawInterruptOneShotMutex, T>;
42
43pub type RawInterruptSpinMutex = RawInterruptMutex<RawSpinMutex>;
45
46pub type InterruptSpinMutex<T> = lock_api::Mutex<RawInterruptSpinMutex, T>;
48
49pub type InterruptSpinMutexGuard<'a, T> = lock_api::MutexGuard<'a, RawInterruptSpinMutex, T>;
51
52pub type RawInterruptTicketMutex = RawInterruptMutex<RawTicketMutex>;
54
55pub type InterruptTicketMutex<T> = lock_api::Mutex<RawInterruptTicketMutex, T>;
57
58pub type InterruptTicketMutexGuard<'a, T> = lock_api::MutexGuard<'a, RawInterruptTicketMutex, T>;