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
29
30
31
32
33
34
35
36
37
38
39
40
extern crate ralloc;
mod util;
use std::thread;
fn make_thread() -> thread::JoinHandle<()> {
thread::spawn(|| {
let mut vec = Vec::new();
for i in 0..0xFFF {
util::acid(|| {
vec.push(0);
vec[i] = i;
});
}
for i in 0..0xFFF {
assert_eq!(vec[i], i);
}
})
}
#[test]
#[ignore]
fn multithread_join_handle_vec() {
util::multiply(|| {
let mut join = Vec::new();
for _ in 0..20 {
util::acid(|| {
join.push(make_thread());
});
}
for i in join {
i.join().unwrap();
}
});
}