Files
2022-03-20 01:20:55 +08:00

24 lines
568 B
Rust

use std::time::Duration;
use tokio::sync::oneshot::channel;
#[tokio::main]
async fn main() {
let (tx1, rx1) = channel::<i32>();
let (_tx2, rx2) = channel::<i32>();
tokio::spawn(async move {
tokio::time::sleep(Duration::from_millis(200)).await;
tx1.send(1);
});
println!("start select");
tokio::select! {
val = rx1 => {
println!("rx1 completed first with {:?}", val);
}
val = rx2 => {
println!("rx2 completed first with {:?}", val);
}
}
println!("end select");
}