tokio/util/
mod.rs

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