src/share/vm/gc_implementation/g1/heapRegion.inline.hpp

Print this page
rev 7056 : [mq]: 8058298
rev 7057 : imported patch review

*** 193,227 **** assert(top() >= _next_top_at_mark_start, "invariant"); } } } - inline void HeapRegionClaimer::initialize(uint n_workers) { - assert(n_workers > 0, "Need at least one worker."); - assert(_claims == NULL, "Must initialize only once."); - _n_workers = n_workers; - _n_regions = G1CollectedHeap::heap()->_hrm._allocated_heapregions_length; - _claims = NEW_C_HEAP_ARRAY(uint, _n_regions, mtGC); - memset(_claims, Unclaimed, sizeof(*_claims) * _n_regions); - } - - inline uint HeapRegionClaimer::start_region_for_worker(uint worker_id) const { - assert(_n_workers != 0, "Must initialize before use."); - assert(worker_id < _n_workers, "Invalid worker_id."); - return _n_regions * worker_id / _n_workers; - } - - inline bool HeapRegionClaimer::is_region_claimed(uint region_index) const { - assert(_claims != NULL, "Must initialize before use."); - assert(region_index < _n_regions, "Invalid index."); - return _claims[region_index] == Claimed; - } - - inline bool HeapRegionClaimer::claim_region(uint region_index) { - assert(_claims != NULL, "Must initialize before use."); - assert(region_index < _n_regions, "Invalid index."); - if (Atomic::cmpxchg(Claimed, &_claims[region_index], Unclaimed) == Unclaimed) { - return true; - } - return false; - } #endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP --- 193,198 ----