< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

Print this page
rev 7182 : imported patch 8058298

*** 209,218 **** --- 209,219 ---- friend class G1ParCleanupCTTask; friend class G1FreeHumongousRegionClosure; // Other related classes. friend class G1MarkSweep; + friend class HeapRegionClaimer; private: // The one and only G1CollectedHeap, so static functions can find it. static G1CollectedHeap* _g1h;
*** 1375,1416 **** // within the heap. inline uint addr_to_region(HeapWord* addr) const; inline HeapWord* bottom_addr_for_region(uint index) const; ! // Divide the heap region sequence into "chunks" of some size (the number ! // of regions divided by the number of parallel threads times some ! // overpartition factor, currently 4). Assumes that this will be called ! // in parallel by ParallelGCThreads worker threads with distinct worker ! // ids in the range [0..max(ParallelGCThreads-1, 1)], that all parallel ! // calls will use the same "claim_value", and that that claim value is ! // different from the claim_value of any heap region before the start of ! // the iteration. Applies "blk->doHeapRegion" to each of the regions, by ! // attempting to claim the first region in each chunk, and, if ! // successful, applying the closure to each region in the chunk (and ! // setting the claim value of the second and subsequent regions of the ! // chunk.) For now requires that "doHeapRegion" always returns "false", ! // i.e., that a closure never attempt to abort a traversal. ! void heap_region_par_iterate_chunked(HeapRegionClosure* cl, uint worker_id, ! uint num_workers, ! jint claim_value) const; ! ! // It resets all the region claim values to the default. ! void reset_heap_region_claim_values(); ! ! // Resets the claim values of regions in the current ! // collection set to the default. ! void reset_cset_heap_region_claim_values(); ! ! #ifdef ASSERT ! bool check_heap_region_claim_values(jint claim_value); ! ! // Same as the routine above but only checks regions in the ! // current collection set. ! bool check_cset_heap_region_claim_values(jint claim_value); ! #endif // ASSERT // Clear the cached cset start regions and (more importantly) // the time stamps. Called when we reset the GC time stamp. void clear_cset_start_regions(); --- 1376,1394 ---- // within the heap. inline uint addr_to_region(HeapWord* addr) const; inline HeapWord* bottom_addr_for_region(uint index) const; ! // Iterate over the heap regions in parallel. Assumes that this will be called ! // in parallel by ParallelGCThreads worker threads with distinct worker ids ! // in the range [0..max(ParallelGCThreads-1, 1)]. Applies "blk->doHeapRegion" ! // to each of the regions, by attempting to claim the region using the ! // HeapRegionClaimer and, if successful, applying the closure to the claimed ! // region. ! void heap_region_par_iterate(HeapRegionClosure* cl, uint worker_id, ! HeapRegionClaimer* hrclaimer) const; // Clear the cached cset start regions and (more importantly) // the time stamps. Called when we reset the GC time stamp. void clear_cset_start_regions();
< prev index next >