equal
deleted
inserted
replaced
30 |
30 |
31 StringDedupQueue* StringDedupQueue::_queue = NULL; |
31 StringDedupQueue* StringDedupQueue::_queue = NULL; |
32 volatile size_t StringDedupQueue::_claimed_index = 0; |
32 volatile size_t StringDedupQueue::_claimed_index = 0; |
33 |
33 |
34 size_t StringDedupQueue::claim() { |
34 size_t StringDedupQueue::claim() { |
35 return Atomic::add(size_t(1), &_claimed_index) - 1; |
35 return Atomic::add(&_claimed_index, size_t(1)) - 1; |
36 } |
36 } |
37 |
37 |
38 void StringDedupQueue::unlink_or_oops_do(StringDedupUnlinkOrOopsDoClosure* cl) { |
38 void StringDedupQueue::unlink_or_oops_do(StringDedupUnlinkOrOopsDoClosure* cl) { |
39 size_t claimed_queue = claim(); |
39 size_t claimed_queue = claim(); |
40 while (claimed_queue < queue()->num_queues()) { |
40 while (claimed_queue < queue()->num_queues()) { |