Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. int x;
  2. atomic<bool> b(false);
  3.  
  4. // thread 1:
  5. x = 10;
  6. atomic_thread_fence(memory_order_release);
  7. b = true;
  8.  
  9. // thread 2:
  10. while(!b){}
  11. atomic_thread_fence(memory_order_acquire);
  12. assert(x == 10); // x will always be 10
  13.  
  14. int* x = new int;
  15. atomic<bool> b(false);
  16.  
  17. // thread 1:
  18. *x = 10;
  19. atomic_thread_fence(memory_order_release);
  20. b = true;
  21.  
  22. // thread 2:
  23. while(!b){}
  24. atomic_thread_fence(memory_order_acquire);
  25. assert(*x == 10); // will *x always be 10?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement