117117//! - [`IndexMap`]: A hash table. 
118118//! - [`IndexSet`]: A hash set. 
119119//! - [`LinearMap`]: A linear map. 
120+ //! - [`mpmc::Queue`](mpmc): A lock-free multi-producer, multi-consumer queue. 
121+ //! - [`spsc::Queue`](spsc): A lock-free single-producer, single-consumer queue. 
120122//! - [`SortedLinkedList`](sorted_linked_list::SortedLinkedList): A sorted linked list. 
121123//! - [`String`]: A string. 
122124//! - [`Vec`]: A vector. 
123- //! - [`mpmc::MpMcQueue`](mpmc): A lock-free multiple-producer, multiple-consumer queue. 
124- //! - [`spsc::Queue`](spsc): A lock-free single-producer, single-consumer queue. 
125125//! 
126126//! # Minimum Supported Rust Version (MSRV) 
127127//! 
@@ -199,12 +199,15 @@ pub mod binary_heap;
199199mod  bytes; 
200200#[ cfg( feature = "defmt" ) ]  
201201mod  defmt; 
202- #[ cfg( any(  
203-     // assume we have all atomics available if we're using portable-atomic  
204-     feature = "portable-atomic" ,  
205-     // target has native atomic CAS (mpmc_large requires usize, otherwise just u8)  
206-     all( feature = "mpmc_large" ,  target_has_atomic = "ptr" ) ,  
207-     all( not( feature = "mpmc_large" ) ,  target_has_atomic = "8" )  
202+ #[ cfg( all(  
203+     feature = "mpmc" ,  
204+     any(  
205+         // Assume all atomics are available if we're using `portable-atomic`.  
206+         feature = "portable-atomic" ,  
207+         // Target has native atomic CAS (`mpmc_large` requires `usize`, otherwise just `u8`).  
208+         all( feature = "mpmc_large" ,  target_has_atomic = "ptr" ) ,  
209+         all( not( feature = "mpmc_large" ) ,  target_has_atomic = "8" ) ,  
210+     )  
208211) ) ] 
209212pub  mod  mpmc; 
210213#[ cfg( any(  
@@ -223,14 +226,17 @@ pub mod mpmc;
223226) ) ] 
224227pub  mod  pool; 
225228pub  mod  sorted_linked_list; 
226- #[ cfg( any(  
227-     // assume we have all atomics available if we're using portable-atomic  
228-     feature = "portable-atomic" ,  
229-     // target has native atomic CAS. Note this is too restrictive, spsc requires load/store only, not CAS.  
230-     // This should be `cfg(target_has_atomic_load_store)`, but that's not stable yet.  
231-     target_has_atomic = "ptr" ,  
232-     // or the current target is in a list in build.rs of targets known to have load/store but no CAS.  
233-     has_atomic_load_store 
229+ #[ cfg( all(  
230+     feature = "spsc" ,  
231+     any(  
232+         // Assume all atomics are available if we're using `portable-atomic`.  
233+         feature = "portable-atomic" ,  
234+         // Target has native atomic CAS. This is too restrictive since `spsc` only requires  
235+         // load/store, but `cfg(target_has_atomic_load_store = "ptr")` is not stable yet.  
236+         target_has_atomic = "ptr" ,  
237+         // The current target is in a list in `build.rs` known to have load/store but no CAS.  
238+         has_atomic_load_store,  
239+     )  
234240) ) ] 
235241pub  mod  spsc; 
236242
0 commit comments