| //@ run-pass | |
| #![allow(unused_must_use)] | |
| //@ needs-threads | |
| use std::sync::mpsc::{channel, Sender}; | |
| use std::thread; | |
| pub fn main() { | |
| test05(); | |
| } | |
| fn test05_start(tx: &Sender<isize>) { | |
| tx.send(10).unwrap(); | |
| println!("sent 10"); | |
| tx.send(20).unwrap(); | |
| println!("sent 20"); | |
| tx.send(30).unwrap(); | |
| println!("sent 30"); | |
| } | |
| fn test05() { | |
| let (tx, rx) = channel(); | |
| let t = thread::spawn(move || test05_start(&tx)); | |
| let mut value: isize = rx.recv().unwrap(); | |
| println!("{}", value); | |
| value = rx.recv().unwrap(); | |
| println!("{}", value); | |
| value = rx.recv().unwrap(); | |
| println!("{}", value); | |
| assert_eq!(value, 30); | |
| t.join(); | |
| } |