1cfg_io_driver! {
2 pub(crate) mod bit;
3 pub(crate) mod slab;
4}
5
6#[cfg(feature = "rt")]
7pub(crate) mod atomic_cell;
8
9#[cfg(any(
10 feature = "rt",
11 feature = "signal",
12 feature = "process",
13 tokio_no_const_mutex_new,
14))]
15pub(crate) mod once_cell;
16
17#[cfg(any(
18 // io driver uses `WakeList` directly
19 feature = "net",
20 feature = "process",
21 // `sync` enables `Notify` and `batch_semaphore`, which require `WakeList`.
22 feature = "sync",
23 // `fs` uses `batch_semaphore`, which requires `WakeList`.
24 feature = "fs",
25 // rt and signal use `Notify`, which requires `WakeList`.
26 feature = "rt",
27 feature = "signal",
28))]
29mod wake_list;
30#[cfg(any(
31 feature = "net",
32 feature = "process",
33 feature = "sync",
34 feature = "fs",
35 feature = "rt",
36 feature = "signal",
37))]
38pub(crate) use wake_list::WakeList;
39
40#[cfg(any(
41 feature = "fs",
42 feature = "net",
43 feature = "process",
44 feature = "rt",
45 feature = "sync",
46 feature = "signal",
47 feature = "time",
48))]
49pub(crate) mod linked_list;
50
51#[cfg(any(feature = "rt", feature = "macros"))]
52pub(crate) mod rand;
53
54cfg_rt! {
55 mod idle_notified_set;
56 pub(crate) use idle_notified_set::IdleNotifiedSet;
57
58 pub(crate) use self::rand::RngSeedGenerator;
59
60 mod wake;
61 pub(crate) use wake::WakerRef;
62 pub(crate) use wake::{waker_ref, Wake};
63
64 mod sync_wrapper;
65 pub(crate) use sync_wrapper::SyncWrapper;
66
67 mod rc_cell;
68 pub(crate) use rc_cell::RcCell;
69}
70
71cfg_rt_multi_thread! {
72 mod try_lock;
73 pub(crate) use try_lock::TryLock;
74}
75
76pub(crate) mod trace;
77
78pub(crate) mod error;
79
80#[cfg(feature = "io-util")]
81pub(crate) mod memchr;
82
83pub(crate) mod markers;
84