ostd/sync/
mod.rs

1// SPDX-License-Identifier: MPL-2.0
2
3//! Useful synchronization primitives.
4
5mod guard;
6mod mutex;
7mod rcu;
8mod rwarc;
9mod rwlock;
10mod rwmutex;
11mod spin;
12mod wait;
13
14pub(crate) use self::rcu::finish_grace_period;
15pub use self::{
16    guard::{GuardTransfer, LocalIrqDisabled, PreemptDisabled, SpinGuardian, WriteIrqDisabled},
17    mutex::{Mutex, MutexGuard},
18    rcu::{Rcu, RcuDrop, RcuOption, RcuOptionReadGuard, RcuReadGuard, non_null},
19    rwarc::{RoArc, RwArc},
20    rwlock::{RwLock, RwLockReadGuard, RwLockUpgradeableGuard, RwLockWriteGuard},
21    rwmutex::{RwMutex, RwMutexReadGuard, RwMutexUpgradeableGuard, RwMutexWriteGuard},
22    spin::{SpinLock, SpinLockGuard},
23    wait::{WaitQueue, Waiter, Waker},
24};
25
26pub(crate) fn init() {
27    rcu::init();
28}