src/hotspot/share/gc/z/zRootsIterator.cpp
changeset 59252 623722a6aeb9
parent 58777 18c246ad2ff9
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
    89     _iter(iter),
    89     _iter(iter),
    90     _claimed(false) {}
    90     _claimed(false) {}
    91 
    91 
    92 template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
    92 template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
    93 void ZSerialOopsDo<T, F>::oops_do(ZRootsIteratorClosure* cl) {
    93 void ZSerialOopsDo<T, F>::oops_do(ZRootsIteratorClosure* cl) {
    94   if (!_claimed && Atomic::cmpxchg(true, &_claimed, false) == false) {
    94   if (!_claimed && Atomic::cmpxchg(&_claimed, false, true) == false) {
    95     (_iter->*F)(cl);
    95     (_iter->*F)(cl);
    96   }
    96   }
    97 }
    97 }
    98 
    98 
    99 template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
    99 template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
   116     _iter(iter),
   116     _iter(iter),
   117     _claimed(false) {}
   117     _claimed(false) {}
   118 
   118 
   119 template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
   119 template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
   120 void ZSerialWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
   120 void ZSerialWeakOopsDo<T, F>::weak_oops_do(BoolObjectClosure* is_alive, ZRootsIteratorClosure* cl) {
   121   if (!_claimed && Atomic::cmpxchg(true, &_claimed, false) == false) {
   121   if (!_claimed && Atomic::cmpxchg(&_claimed, false, true) == false) {
   122     (_iter->*F)(is_alive, cl);
   122     (_iter->*F)(is_alive, cl);
   123   }
   123   }
   124 }
   124 }
   125 
   125 
   126 template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>
   126 template <typename T, void (T::*F)(BoolObjectClosure*, ZRootsIteratorClosure*)>