< prev index next >

src/hotspot/share/gc/parallel/psParallelCompact.hpp

Print this page
rev 57190 : [mq]: shadow-regions.5
rev 57192 : imported patch shadow-regions-final-fixes

*** 628,657 **** const region_sz_t old = Atomic::cmpxchg(&_dc_and_los, los, dc_claimed | los); return old == los; } inline bool ParallelCompactData::RegionData::mark_normal() { ! return Atomic::cmpxchg(NormalRegion, &_shadow_state, UnusedRegion, memory_order_relaxed) == UnusedRegion; } inline bool ParallelCompactData::RegionData::mark_shadow() { if (_shadow_state != UnusedRegion) return false; ! return Atomic::cmpxchg(ShadowRegion, &_shadow_state, UnusedRegion, memory_order_relaxed) == UnusedRegion; } inline void ParallelCompactData::RegionData::mark_filled() { ! int old = Atomic::cmpxchg(FilledShadow, &_shadow_state, ShadowRegion, memory_order_relaxed); ! assert(old == Shadow, "Fail to mark the region as filled"); } inline bool ParallelCompactData::RegionData::mark_copied() { ! return Atomic::cmpxchg(CopiedShadow, &_shadow_state, FilledShadow, memory_order_relaxed) == FilledShadow; } void ParallelCompactData::RegionData::shadow_to_normal() { ! int old = Atomic::cmpxchg(NormalRegion, &_shadow_state, ShadowRegion, memory_order_relaxed); ! assert(old == Shadow, "Fail to mark the region as finish"); } inline ParallelCompactData::RegionData* ParallelCompactData::region(size_t region_idx) const { --- 628,657 ---- const region_sz_t old = Atomic::cmpxchg(&_dc_and_los, los, dc_claimed | los); return old == los; } inline bool ParallelCompactData::RegionData::mark_normal() { ! return Atomic::cmpxchg(&_shadow_state, UnusedRegion, NormalRegion, memory_order_relaxed) == UnusedRegion; } inline bool ParallelCompactData::RegionData::mark_shadow() { if (_shadow_state != UnusedRegion) return false; ! return Atomic::cmpxchg(&_shadow_state, UnusedRegion, ShadowRegion, memory_order_relaxed) == UnusedRegion; } inline void ParallelCompactData::RegionData::mark_filled() { ! int old = Atomic::cmpxchg(&_shadow_state, ShadowRegion, FilledShadow, memory_order_relaxed); ! assert(old == ShadowRegion, "Fail to mark the region as filled"); } inline bool ParallelCompactData::RegionData::mark_copied() { ! return Atomic::cmpxchg(&_shadow_state, FilledShadow, CopiedShadow, memory_order_relaxed) == FilledShadow; } void ParallelCompactData::RegionData::shadow_to_normal() { ! int old = Atomic::cmpxchg(&_shadow_state, ShadowRegion, NormalRegion, memory_order_relaxed); ! assert(old == ShadowRegion, "Fail to mark the region as finish"); } inline ParallelCompactData::RegionData* ParallelCompactData::region(size_t region_idx) const {
< prev index next >