< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page

        

*** 2298,2307 **** --- 2298,2331 ---- void G1CollectedHeap::object_iterate(ObjectClosure* cl) { IterateObjectClosureRegionClosure blk(cl); heap_region_iterate(&blk); } + class G1ParallelObjectIterator : public ParallelObjectIterator { + private: + G1CollectedHeap* _heap; + HeapRegionClaimer _claimer; + + public: + G1ParallelObjectIterator(uint thread_num) : + _heap(G1CollectedHeap::heap()), + _claimer(thread_num == 0 ? G1CollectedHeap::heap()->workers()->active_workers() : thread_num) {} + + virtual void object_iterate(ObjectClosure* cl, uint worker_id) { + _heap->object_iterate_parallel(cl, worker_id, &_claimer); + } + }; + + ParallelObjectIterator* G1CollectedHeap::parallel_object_iterator(uint thread_num) { + return new G1ParallelObjectIterator(thread_num); + } + + void G1CollectedHeap::object_iterate_parallel(ObjectClosure* cl, uint worker_id, HeapRegionClaimer* claimer) { + IterateObjectClosureRegionClosure blk(cl); + heap_region_par_iterate_from_worker_offset(&blk, claimer, worker_id); + } + void G1CollectedHeap::keep_alive(oop obj) { G1BarrierSet::enqueue(obj); } void G1CollectedHeap::heap_region_iterate(HeapRegionClosure* cl) const {
*** 4917,4945 **** } GrowableArray<MemoryPool*> G1CollectedHeap::memory_pools() { return _g1mm->memory_pools(); } - - class G1ParallelObjectIterator : public ParallelObjectIterator { - private: - G1CollectedHeap* _heap; - HeapRegionClaimer _claimer; - - public: - G1ParallelObjectIterator(uint thread_num) : - _heap(G1CollectedHeap::heap()), - _claimer(thread_num == 0 ? G1CollectedHeap::heap()->workers()->active_workers() : thread_num) {} - - virtual void object_iterate(ObjectClosure* cl, uint worker_id) { - _heap->object_iterate_parallel(cl, worker_id, &_claimer); - } - }; - - ParallelObjectIterator* G1CollectedHeap::parallel_object_iterator(uint thread_num) { - return new G1ParallelObjectIterator(thread_num); - } - - void G1CollectedHeap::object_iterate_parallel(ObjectClosure* cl, uint worker_id, HeapRegionClaimer* claimer) { - IterateObjectClosureRegionClosure blk(cl); - heap_region_par_iterate_from_worker_offset(&blk, claimer, worker_id); - } --- 4941,4945 ----
< prev index next >