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