#[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() {}