]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/unique-send-2.rs
Imported Upstream version 0.6
[rustc.git] / src / test / run-pass / unique-send-2.rs
CommitLineData
223e47cc
LB
1// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
11use core::comm::*;
12
13fn child(c: &SharedChan<~uint>, i: uint) {
14 c.send(~i);
15}
16
17pub fn main() {
18 let (p, ch) = stream();
19 let ch = SharedChan(ch);
20 let n = 100u;
21 let mut expected = 0u;
22 for uint::range(0u, n) |i| {
23 let ch = ch.clone();
24 task::spawn(|| child(&ch, i) );
25 expected += i;
26 }
27
28 let mut actual = 0u;
29 for uint::range(0u, n) |_i| {
30 let j = p.recv();
31 actual += *j;
32 }
33
34 assert!(expected == actual);
35}