< prev index next >
src/hotspot/share/gc/shared/satbMarkQueue.cpp
Print this page
*** 134,144 ****
do {
old = value;
value += 2;
assert(value > old, "overflow");
if (value > threshold) value |= 1;
! value = Atomic::cmpxchg(value, cfptr, old);
} while (value != old);
}
// Decrement count. If count == 0, clear flag, else maintain flag.
static void decrement_count(volatile size_t* cfptr) {
--- 134,144 ----
do {
old = value;
value += 2;
assert(value > old, "overflow");
if (value > threshold) value |= 1;
! value = Atomic::cmpxchg(cfptr, old, value);
} while (value != old);
}
// Decrement count. If count == 0, clear flag, else maintain flag.
static void decrement_count(volatile size_t* cfptr) {
*** 147,157 ****
do {
assert((value >> 1) != 0, "underflow");
old = value;
value -= 2;
if (value <= 1) value = 0;
! value = Atomic::cmpxchg(value, cfptr, old);
} while (value != old);
}
void SATBMarkQueueSet::set_process_completed_buffers_threshold(size_t value) {
// Scale requested threshold to align with count field. If scaling
--- 147,157 ----
do {
assert((value >> 1) != 0, "underflow");
old = value;
value -= 2;
if (value <= 1) value = 0;
! value = Atomic::cmpxchg(cfptr, old, value);
} while (value != old);
}
void SATBMarkQueueSet::set_process_completed_buffers_threshold(size_t value) {
// Scale requested threshold to align with count field. If scaling
< prev index next >