]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/many.rs
044e77d5f1e153dc6bb8b3c47801c9709545a548
[rust.git] / src / test / run-pass / many.rs
1 // -*- rust -*-
2
3 use std;
4 import task;
5 import comm;
6
7 fn sub(&&args: (comm::chan<int>, int)) {
8     let (parent, id) = args;
9     if id == 0 {
10         comm::send(parent, 0);
11     } else {
12         let p = comm::port();
13         let child = task::spawn((comm::chan(p), id - 1), sub);
14         let y = comm::recv(p);
15         comm::send(parent, y + 1);
16     }
17 }
18
19 fn main() {
20     let p = comm::port();
21     let child = task::spawn((comm::chan(p), 200), sub);
22     let y = comm::recv(p);
23     #debug("transmission complete");
24     log(debug, y);
25     assert (y == 200);
26 }