crossbeam-queue/src/lib.rs
Line | Count | Source |
1 | 1 | //! Concurrent queues.//! Concurrent queues. |
2 | | //! |
3 | | //! This crate provides concurrent queues that can be shared among threads: |
4 | | //! |
5 | | //! * [`ArrayQueue`], a bounded MPMC queue that allocates a fixed-capacity buffer on construction. |
6 | | //! * [`SegQueue`], an unbounded MPMC queue that allocates small buffers, segments, on demand. |
7 | | |
8 | | #![doc(test( |
9 | | no_crate_inject, |
10 | | attr( |
11 | | deny(warnings, rust_2018_idioms), |
12 | | allow(dead_code, unused_assignments, unused_variables) |
13 | | ) |
14 | | ))] |
15 | | #![warn( |
16 | | missing_docs, |
17 | | missing_debug_implementations, |
18 | | rust_2018_idioms, |
19 | | unreachable_pub |
20 | | )] |
21 | | #![cfg_attr(not(feature = "std"), no_std)] |
22 | | #![cfg_attr(feature = "nightly", feature(cfg_target_has_atomic))] |
23 | | // matches! requires Rust 1.42 |
24 | | #![allow(clippy::match_like_matches_macro)] |
25 | | |
26 | | #[cfg_attr(feature = "nightly", cfg(target_has_atomic = "ptr"))] |
27 | | cfg_if::cfg_if! { |
28 | | if #[cfg(feature = "alloc")] { |
29 | | extern crate alloc; |
30 | | |
31 | | mod array_queue; |
32 | | mod seg_queue; |
33 | | |
34 | | pub use self::array_queue::ArrayQueue; |
35 | | pub use self::seg_queue::SegQueue; |
36 | | } |
37 | | } |