summaryrefslogtreecommitdiffstats
path: root/src/test/ui/threads-sendsync/task-comm-0.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/ui/threads-sendsync/task-comm-0.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/threads-sendsync/task-comm-0.rs b/src/test/ui/threads-sendsync/task-comm-0.rs
new file mode 100644
index 000000000..2b9a50e4d
--- /dev/null
+++ b/src/test/ui/threads-sendsync/task-comm-0.rs
@@ -0,0 +1,30 @@
+// run-pass
+#![allow(unused_must_use)]
+// ignore-emscripten no threads support
+
+use std::thread;
+use std::sync::mpsc::{channel, Sender};
+
+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();
+}