< prev index next >
src/hotspot/share/gc/parallel/psParallelCompact.hpp
Print this page
*** 582,600 ****
inline void ParallelCompactData::RegionData::set_highest_ref(HeapWord* addr)
{
#ifdef ASSERT
HeapWord* tmp = _highest_ref;
while (addr > tmp) {
! tmp = Atomic::cmpxchg(addr, &_highest_ref, tmp);
}
#endif // #ifdef ASSERT
}
inline bool ParallelCompactData::RegionData::claim()
{
const region_sz_t los = static_cast<region_sz_t>(live_obj_size());
! const region_sz_t old = Atomic::cmpxchg(dc_claimed | los, &_dc_and_los, los);
return old == los;
}
inline ParallelCompactData::RegionData*
ParallelCompactData::region(size_t region_idx) const
--- 582,600 ----
inline void ParallelCompactData::RegionData::set_highest_ref(HeapWord* addr)
{
#ifdef ASSERT
HeapWord* tmp = _highest_ref;
while (addr > tmp) {
! tmp = Atomic::cmpxchg(&_highest_ref, tmp, addr);
}
#endif // #ifdef ASSERT
}
inline bool ParallelCompactData::RegionData::claim()
{
const region_sz_t los = static_cast<region_sz_t>(live_obj_size());
! const region_sz_t old = Atomic::cmpxchg(&_dc_and_los, los, dc_claimed | los);
return old == los;
}
inline ParallelCompactData::RegionData*
ParallelCompactData::region(size_t region_idx) const
< prev index next >