diff --git a/spmc-test/Cargo.lock b/spmc-test/Cargo.lock new file mode 100644 index 0000000..740cdbb --- /dev/null +++ b/spmc-test/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "spmc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5" + +[[package]] +name = "spmctest" +version = "0.1.0" +dependencies = [ + "spmc", +] diff --git a/spmc-test/Cargo.toml b/spmc-test/Cargo.toml new file mode 100644 index 0000000..e7edffd --- /dev/null +++ b/spmc-test/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "spmctest" +version = "0.1.0" +edition = "2021" + +[dependencies] +spmc = "0.3" diff --git a/spmc-test/src/main.rs b/spmc-test/src/main.rs new file mode 100644 index 0000000..4d27210 --- /dev/null +++ b/spmc-test/src/main.rs @@ -0,0 +1,24 @@ +use std::thread; + +fn main() { + let (mut tx, rx) = spmc::channel(); + + let mut handles = Vec::new(); + for n in 0..5 { + let rx = rx.clone(); + handles.push(thread::spawn(move || { + while let Ok(msg) = rx.recv() { + // println!("Hello"); + println!("worker {} recvd: {}", n, msg); + } + })); + } + + for i in 0..15 { + tx.send(i).unwrap(); + } + + for handle in handles { + handle.join().unwrap(); + } +}