/src/test/run-pass/task-comm-10.rs

http://github.com/jruderman/rust · Rust · 27 lines · 23 code · 4 blank · 0 comment · 2 complexity · 60bd42463a5d21a726afc37443edd86c MD5 · raw file

  1. use std;
  2. import task;
  3. import pipes;
  4. fn start(c: pipes::chan<pipes::chan<~str>>) {
  5. let (ch, p) = pipes::stream();
  6. c.send(ch);
  7. let mut a;
  8. let mut b;
  9. a = p.recv();
  10. assert a == ~"A";
  11. log(error, a);
  12. b = p.recv();
  13. assert b == ~"B";
  14. log(error, b);
  15. }
  16. fn main() {
  17. let (ch, p) = pipes::stream();
  18. let child = task::spawn(|| start(ch) );
  19. let c = p.recv();
  20. c.send(~"A");
  21. c.send(~"B");
  22. task::yield();
  23. }