arc.rs 492 B

12345678910111213141516171819202122
  1. //! This test is a more subtle one. It is one which can hit thread destructors unexpectedly.
  2. extern crate ralloc;
  3. use std::sync::Arc;
  4. use std::thread;
  5. #[test]
  6. fn test_arc() {
  7. let numbers: Vec<_> = (0..100).collect();
  8. let shared_numbers = Arc::new(numbers);
  9. for _ in 0..10 {
  10. let child_numbers = shared_numbers.clone();
  11. thread::spawn(move || {
  12. let _local_numbers = &child_numbers[..];
  13. // Work with the local numbers
  14. });
  15. }
  16. }