multithreading.rs 528 B

1234567891011121314151617181920212223242526272829303132
  1. extern crate ralloc;
  2. use std::thread;
  3. fn make_thread() -> thread::JoinHandle<()> {
  4. thread::spawn(|| {
  5. let mut vec = Vec::new();
  6. for i in 0..0xFFFF {
  7. vec.push(0);
  8. vec[i] = i;
  9. }
  10. for i in 0..0xFFFF {
  11. assert_eq!(vec[i], i);
  12. }
  13. })
  14. }
  15. #[test]
  16. fn test() {
  17. let mut join = Vec::new();
  18. for _ in 0..50 {
  19. join.push(make_thread());
  20. }
  21. for i in join {
  22. i.join().unwrap();
  23. }
  24. ralloc::lock().debug_assert_no_leak();
  25. }