Advertisement
Guest User

Untitled

a guest
Aug 26th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. use std::sync::Mutex;
  2.  
  3. fn main() {
  4. let mutex_a = Mutex::new(());
  5. let mutex_b = Mutex::new(());
  6.  
  7. let waiting_time = 1000;
  8.  
  9. crossbeam::scope(|s| {
  10. s.spawn(|_| {
  11. let b = mutex_b.lock().unwrap();
  12. std::thread::sleep(std::time::Duration::from_millis(waiting_time));
  13. let a = mutex_a.lock().unwrap();
  14. });
  15. s.spawn(|_| {
  16. let a = mutex_a.lock().unwrap();
  17. std::thread::sleep(std::time::Duration::from_millis(waiting_time));
  18. let b = mutex_b.lock().unwrap();
  19. });
  20. std::thread::sleep(std::time::Duration::from_millis(waiting_time));
  21. let a = mutex_a.lock().unwrap();
  22. let b = mutex_b.lock().unwrap();
  23. }).unwrap();
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement