summary refs log tree commit diff
path: root/src/test/run-pass/task-spawn-connected.rs
blob: 053dab56a0558b14bc8471655370693d43f5549d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fn stringifier(from_par: comm::port<uint>,
               to_par: comm::chan<str>) {
    let value: uint;
    do {
        value = comm::recv(from_par);
        comm::send(to_par, uint::to_str(value, 10u));
    } while value != 0u;
}

fn main() {
    let t = task::spawn_connected(stringifier);
    comm::send(t.to_child, 22u);
    assert comm::recv(t.from_child) == "22";
    comm::send(t.to_child, 23u);
    assert comm::recv(t.from_child) == "23";
    comm::send(t.to_child, 0u);
    assert comm::recv(t.from_child) == "0";
}