equal
deleted
inserted
replaced
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*)> |