]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/unique-send-2.rs
1625e7cc9c174d7076a20567e21c951445a1f3b2
[rust.git] / src / test / run-pass / unique-send-2.rs
1 use std;
2 import comm;
3 import task;
4 import uint;
5
6 fn child(args: (comm::chan<~uint>, uint)) {
7     let (c, i) = args;
8     comm::send(c, ~i);
9 }
10
11 fn main() {
12     let p = comm::port();
13     let n = 100u;
14     let expected = 0u;
15     uint::range(0u, n) {|i|
16         task::spawn((comm::chan(p), i), child);
17         expected += i;
18     }
19
20     let actual = 0u;
21     uint::range(0u, n) {|_i|
22         let j = comm::recv(p);
23         actual += *j;
24     }
25
26     assert expected == actual;
27 }