summary refs log tree commit diff
path: root/src/test/run-pass/task-comm-10.rs
blob: 0c69f414cc813b9b6d1a5b02d5518d7ceeac7beb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// xfail-fast
#[legacy_modes];

extern mod std;

fn start(c: pipes::Chan<pipes::Chan<~str>>) {
    let (ch, p) = pipes::stream();
    c.send(ch);

    let mut a;
    let mut b;
    a = p.recv();
    assert a == ~"A";
    log(error, a);
    b = p.recv();
    assert b == ~"B";
    log(error, b);
}

fn main() {
    let (ch, p) = pipes::stream();
    let child = task::spawn(|| start(ch) );

    let c = p.recv();
    c.send(~"A");
    c.send(~"B");
    task::yield();
}