rust/src/test/run-pass/issue-3168.rs

20 lines
449 B
Rust

fn main() {
let (c,p) = pipes::stream();
do task::try {
let (c2,p2) = pipes::stream();
do task::spawn {
p2.recv();
#error["brother fails"];
fail;
}
let (c3,p3) = pipes::stream();
c.send(c3);
c2.send(());
#error["child blocks"];
p3.recv();
};
#error["parent tries"];
assert !p.recv().try_send(());
#error("all done!");
}