/src/test/run-pass/many.rs
http://github.com/jruderman/rust · Rust · 27 lines · 23 code · 3 blank · 1 comment · 4 complexity · 7f7205ad685ae7eb009f0c83c76bf841 MD5 · raw file
- // -*- rust -*-
- use std;
- import task;
- import comm;
- fn sub(parent: comm::chan<int>, id: int) {
- if id == 0 {
- comm::send(parent, 0);
- } else {
- let p = comm::port();
- let ch = comm::chan(p);
- let child = task::spawn(|| sub(ch, id - 1) );
- let y = comm::recv(p);
- comm::send(parent, y + 1);
- }
- }
- fn main() {
- let p = comm::port();
- let ch = comm::chan(p);
- let child = task::spawn(|| sub(ch, 200) );
- let y = comm::recv(p);
- debug!{"transmission complete"};
- log(debug, y);
- assert (y == 200);
- }