From 8edf368958acb4a6b28b17ca71ebe9e8014b1d07 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Fri, 5 Nov 2021 14:29:55 -0300 Subject: [PATCH] Testing spmc --- spmc-test/Cargo.lock | 16 ++++++++++++++++ spmc-test/Cargo.toml | 7 +++++++ spmc-test/src/main.rs | 24 ++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 spmc-test/Cargo.lock create mode 100644 spmc-test/Cargo.toml create mode 100644 spmc-test/src/main.rs 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(); + } +}