From 1b6a04ca5504955c571d1c97504fb45ea0befee4 Mon Sep 17 00:00:00 2001
From: Valentin Popov <valentin@popov.link>
Date: Mon, 8 Jan 2024 01:21:28 +0400
Subject: Initial vendor packages

Signed-off-by: Valentin Popov <valentin@popov.link>
---
 vendor/flume/examples/select.rs | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 vendor/flume/examples/select.rs

(limited to 'vendor/flume/examples/select.rs')

diff --git a/vendor/flume/examples/select.rs b/vendor/flume/examples/select.rs
new file mode 100644
index 0000000..bbe957b
--- /dev/null
+++ b/vendor/flume/examples/select.rs
@@ -0,0 +1,25 @@
+#[cfg(feature = "select")]
+use flume::Selector;
+
+#[cfg(feature = "select")]
+fn main() {
+    // Create two channels
+    let (red_tx, red_rx) = flume::unbounded();
+    let (blue_tx, blue_rx) = flume::unbounded();
+
+    // Spawn two threads that each send a message into their respective channel
+    std::thread::spawn(move || { let _ = red_tx.send("Red"); });
+    std::thread::spawn(move || { let _ = blue_tx.send("Blue"); });
+
+    // Race them to see which one sends their message first
+    let winner = Selector::new()
+        .recv(&red_rx, |msg| msg)
+        .recv(&blue_rx, |msg| msg)
+        .wait()
+        .unwrap();
+
+    println!("{} won!", winner);
+}
+
+#[cfg(not(feature = "select"))]
+fn main() {}
-- 
cgit v1.2.3