Guest User

Untitled

a guest
Dec 14th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.46 KB | None | 0 0
  1. use std::thread;
  2.  
  3. #[derive(Copy, Clone)]
  4. struct UnsafeIntPtr(*mut i32);
  5.  
  6. unsafe impl Send for UnsafeIntPtr {}
  7.  
  8. fn main() {
  9. let mut n = 0;
  10. let n = UnsafeIntPtr(&mut n);
  11.  
  12. let a = thread::spawn(move || add_500_000(n.0));
  13. let b = thread::spawn(move || add_500_000(n.0));
  14.  
  15. a.join().unwrap();
  16. b.join().unwrap();
  17.  
  18. println!("{}", unsafe { *n.0 } );
  19. }
  20.  
  21. fn add_500_000(n: *mut i32) {
  22. for _ in 0..500_000 {
  23. unsafe { *n += 1; }
  24. }
  25. }
Add Comment
Please, Sign In to add comment