< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp
Print this page
@@ -79,11 +79,11 @@
for (CodeBlob *cb = CodeCache::first_blob(_heap); cb != NULL; cb = CodeCache::next_blob(_heap, cb)) {
int current = count++;
if ((current & stride_mask) == 0) {
process_block = (current >= _claimed_idx) &&
- (Atomic::cmpxchg(current + stride, &_claimed_idx, current) == current);
+ (Atomic::cmpxchg(&_claimed_idx, current, current + stride) == current);
}
if (process_block) {
if (cb->is_alive()) {
f->do_code_blob(cb);
#ifdef ASSERT
@@ -262,11 +262,11 @@
GrowableArray<ShenandoahNMethod*>* list = ShenandoahCodeRoots::_recorded_nms;
size_t max = (size_t)list->length();
while (_claimed < max) {
- size_t cur = Atomic::add(stride, &_claimed) - stride;
+ size_t cur = Atomic::add(&_claimed, stride) - stride;
size_t start = cur;
size_t end = MIN2(cur + stride, max);
if (start >= max) break;
for (size_t idx = start; idx < end; idx++) {
< prev index next >