1 | cfg_io_driver! { |
2 | pub(crate) mod bit; |
3 | } |
4 | |
5 | #[cfg (feature = "rt" )] |
6 | pub(crate) mod atomic_cell; |
7 | |
8 | pub(crate) mod metric_atomics; |
9 | |
10 | #[cfg (any(feature = "rt" , feature = "signal" , feature = "process" ))] |
11 | pub(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 | ))] |
27 | mod 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 | ))] |
37 | pub(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 | ))] |
48 | pub(crate) mod linked_list; |
49 | |
50 | cfg_rt! { |
51 | pub(crate) mod sharded_list; |
52 | } |
53 | |
54 | #[cfg (any(feature = "rt" , feature = "macros" , feature = "time" ))] |
55 | pub(crate) mod rand; |
56 | |
57 | cfg_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 | |
74 | cfg_rt_multi_thread! { |
75 | mod try_lock; |
76 | pub(crate) use try_lock::TryLock; |
77 | } |
78 | |
79 | pub(crate) mod trace; |
80 | |
81 | pub(crate) mod error; |
82 | |
83 | #[cfg (feature = "io-util" )] |
84 | pub(crate) mod memchr; |
85 | |
86 | pub(crate) mod markers; |
87 | |
88 | pub(crate) mod cacheline; |
89 | |
90 | cfg_io_driver_impl! { |
91 | pub(crate) mod ptr_expose; |
92 | } |
93 | |