8058298: Separate heap region iterator claim values from the data structures iterated over

Reviewed-by: tschatzl, brutisso
This commit is contained in:
Marcus Larsson 2014-10-07 14:54:53 +02:00
parent 18eb46eb95
commit 6d1c35615a
11 changed files with 157 additions and 354 deletions

View file

@ -217,7 +217,6 @@ void HeapRegion::hr_clear(bool par, bool clear_space, bool locked) {
} else {
hrrs->clear();
}
_claimed = InitialClaimValue;
}
zero_marked_bytes();
@ -294,17 +293,6 @@ void HeapRegion::clear_humongous() {
_humongous_start_region = NULL;
}
bool HeapRegion::claimHeapRegion(jint claimValue) {
jint current = _claimed;
if (current != claimValue) {
jint res = Atomic::cmpxchg(claimValue, &_claimed, current);
if (res == current) {
return true;
}
}
return false;
}
HeapRegion::HeapRegion(uint hrm_index,
G1BlockOffsetSharedArray* sharedOffsetArray,
MemRegion mr) :
@ -314,7 +302,7 @@ HeapRegion::HeapRegion(uint hrm_index,
_humongous_start_region(NULL),
_in_collection_set(false),
_next_in_special_set(NULL),
_claimed(InitialClaimValue), _evacuation_failed(false),
_evacuation_failed(false),
_prev_marked_bytes(0), _next_marked_bytes(0), _gc_efficiency(0.0),
_next_young_region(NULL),
_next_dirty_cards_region(NULL), _next(NULL), _prev(NULL),