< prev index next >
src/hotspot/share/gc/z/zRootsIterator.cpp
Print this page
@@ -89,11 +89,11 @@
_iter(iter),
_claimed(false) {}
template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
void ZSerialOopsDo<T, F>::oops_do(ZRootsIteratorClosure* cl) {
- if (!_claimed && Atomic::cmpxchg(true, &_claimed, false) == false) {
+ if (!_claimed && Atomic::cmpxchg(&_claimed, false, true) == false) {
(_iter->*F)(cl);
}
}
template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
@@ -116,11 +116,11 @@
_iter(iter),
_claimed(false) {}
template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
void ZSerialWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
- if (!_claimed && Atomic::cmpxchg(true, &_claimed, false) == false) {
+ if (!_claimed && Atomic::cmpxchg(&_claimed, false, true) == false) {
(_iter->*F)(is_alive, cl);
}
}
template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
< prev index next >