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