2 releases
0.1.1 | Mar 31, 2023 |
---|---|
0.1.0 | Mar 31, 2023 |
#1072 in Concurrency
22 downloads per month
9KB
146 lines
sorted-channel
A multi-producer, multi-consumer channel that outputs sorted messages. Each message is received by only one receiving channel.
Examples
use sorted_channel::sorted_channel;
use std::thread;
let (tx, rx) = sorted_channel();
let handle = thread::spawn(move || {
for i in [0, 9, 1, 8, 2, 7, 3, 6, 4, 5] {
tx.send(i).unwrap();
}
});
handle.join().unwrap();
for i in (0..10).rev() {
assert_eq!(rx.recv(), Ok(i));
}
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.4–5MB
~11K SLoC