| 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 |  | 
|---|