summary refs log tree commit diff
path: root/src/test/run-pass/unwind-resource.rs
blob: 63250d8f7c0b1c9edfc86eb03df674a08ea6d72b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// xfail-win32
use std;
import task;
import comm;

resource complainer(c: comm::chan<bool>) {
    comm::send(c, true);
}

fn f(c: comm::chan<bool>) {
    let c <- complainer(c);
    fail;
}

fn main() {
    let p = comm::port();
    let c = comm::chan(p);
    let builder = task::task_builder();
    task::unsupervise(builder);
    task::run(builder) {|| f(c); }
    assert comm::recv(p);
}