Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 7th, 2012  |  syntax: None  |  size: 0.37 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. C  11 compare and swap acquire/release semantics
  2. std::atomic<K *> data;
  3. K *old_value = NULL;
  4. K *new_value = new K();
  5. if (!data.compare_exchange_strong(old_value, new_value, m1, m2)) {
  6.     delete new_value;
  7. }
  8. do_something(old_value);
  9.        
  10. std::atomic<K *> data;
  11. K *i = data.load(m3);
  12. K *j;
  13. do {
  14.    j = i + 1;
  15. } while (data.compare_exchange_weak(i, j, m4, m5);
  16. do_something(j);