xref: /relibc/ralloc/tests/too_many_threads.rs (revision 2cb61efbaa30da912d4f1015c8b2b361005533f0)
1 extern crate ralloc;
2 
3 mod util;
4 
5 use std::thread;
6 
7 fn make_thread() -> thread::JoinHandle<()> {
8     thread::spawn(|| {
9         let mut vec = Vec::new();
10 
11         for i in 0..0xFFF {
12             util::acid(|| {
13                 vec.push(0);
14                 vec[i] = i;
15             });
16         }
17 
18         for i in 0..0xFFF {
19             assert_eq!(vec[i], i);
20         }
21     })
22 }
23 
24 #[test]
25 #[ignore]
26 fn multithread_join_handle_vec() {
27     util::multiply(|| {
28         let mut join = Vec::new();
29 
30         for _ in 0..20 {
31             util::acid(|| {
32                 join.push(make_thread());
33             });
34         }
35 
36         for i in join {
37             i.join().unwrap();
38         }
39     });
40 }
41