Skip to main content

ostd/sync/
mod.rs

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