atomic-example.x10 296 B

123456789101112131415161718
  1. // push data on concurrent
  2. // list-stack
  3. val node = new Node(data);
  4. atomic {
  5. node.next = head;
  6. head = node;
  7. }
  8. // target defined in
  9. // enclosing scope
  10. atomic def CAS(old:Object, n:Object) {
  11. if (target.equals(old)) {
  12. target = n;
  13. return true;
  14. }
  15. return false;
  16. }