< prev index next >

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

Print this page




2283 
2284 // Iterates an ObjectClosure over all objects within a HeapRegion.
2285 
2286 class IterateObjectClosureRegionClosure: public HeapRegionClosure {
2287   ObjectClosure* _cl;
2288 public:
2289   IterateObjectClosureRegionClosure(ObjectClosure* cl) : _cl(cl) {}
2290   bool do_heap_region(HeapRegion* r) {
2291     if (!r->is_continues_humongous()) {
2292       r->object_iterate(_cl);
2293     }
2294     return false;
2295   }
2296 };
2297 
2298 void G1CollectedHeap::object_iterate(ObjectClosure* cl) {
2299   IterateObjectClosureRegionClosure blk(cl);
2300   heap_region_iterate(&blk);
2301 }
2302 
























2303 void G1CollectedHeap::keep_alive(oop obj) {
2304   G1BarrierSet::enqueue(obj);
2305 }
2306 
2307 void G1CollectedHeap::heap_region_iterate(HeapRegionClosure* cl) const {
2308   _hrm->iterate(cl);
2309 }
2310 
2311 void G1CollectedHeap::heap_region_par_iterate_from_worker_offset(HeapRegionClosure* cl,
2312                                                                  HeapRegionClaimer *hrclaimer,
2313                                                                  uint worker_id) const {
2314   _hrm->par_iterate(cl, hrclaimer, hrclaimer->offset_for_worker(worker_id));
2315 }
2316 
2317 void G1CollectedHeap::heap_region_par_iterate_from_start(HeapRegionClosure* cl,
2318                                                          HeapRegionClaimer *hrclaimer) const {
2319   _hrm->par_iterate(cl, hrclaimer, 0);
2320 }
2321 
2322 void G1CollectedHeap::collection_set_iterate_all(HeapRegionClosure* cl) {


4901 
4902 void G1CollectedHeap::rebuild_strong_code_roots() {
4903   RebuildStrongCodeRootClosure blob_cl(this);
4904   CodeCache::blobs_do(&blob_cl);
4905 }
4906 
4907 void G1CollectedHeap::initialize_serviceability() {
4908   _g1mm->initialize_serviceability();
4909 }
4910 
4911 MemoryUsage G1CollectedHeap::memory_usage() {
4912   return _g1mm->memory_usage();
4913 }
4914 
4915 GrowableArray<GCMemoryManager*> G1CollectedHeap::memory_managers() {
4916   return _g1mm->memory_managers();
4917 }
4918 
4919 GrowableArray<MemoryPool*> G1CollectedHeap::memory_pools() {
4920   return _g1mm->memory_pools();
4921 }
4922 
4923 class G1ParallelObjectIterator : public ParallelObjectIterator {
4924 private:
4925   G1CollectedHeap*  _heap;
4926   HeapRegionClaimer _claimer;
4927 
4928 public:
4929   G1ParallelObjectIterator(uint thread_num) :
4930       _heap(G1CollectedHeap::heap()),
4931       _claimer(thread_num == 0 ? G1CollectedHeap::heap()->workers()->active_workers() : thread_num) {}
4932 
4933   virtual void object_iterate(ObjectClosure* cl, uint worker_id) {
4934     _heap->object_iterate_parallel(cl, worker_id, &_claimer);
4935   }
4936 };
4937 
4938 ParallelObjectIterator* G1CollectedHeap::parallel_object_iterator(uint thread_num) {
4939   return new G1ParallelObjectIterator(thread_num);
4940 }
4941 
4942 void G1CollectedHeap::object_iterate_parallel(ObjectClosure* cl, uint worker_id, HeapRegionClaimer* claimer) {
4943   IterateObjectClosureRegionClosure blk(cl);
4944   heap_region_par_iterate_from_worker_offset(&blk, claimer, worker_id);
4945 }


2283 
2284 // Iterates an ObjectClosure over all objects within a HeapRegion.
2285 
2286 class IterateObjectClosureRegionClosure: public HeapRegionClosure {
2287   ObjectClosure* _cl;
2288 public:
2289   IterateObjectClosureRegionClosure(ObjectClosure* cl) : _cl(cl) {}
2290   bool do_heap_region(HeapRegion* r) {
2291     if (!r->is_continues_humongous()) {
2292       r->object_iterate(_cl);
2293     }
2294     return false;
2295   }
2296 };
2297 
2298 void G1CollectedHeap::object_iterate(ObjectClosure* cl) {
2299   IterateObjectClosureRegionClosure blk(cl);
2300   heap_region_iterate(&blk);
2301 }
2302 
2303 class G1ParallelObjectIterator : public ParallelObjectIterator {
2304 private:
2305   G1CollectedHeap*  _heap;
2306   HeapRegionClaimer _claimer;
2307 
2308 public:
2309   G1ParallelObjectIterator(uint thread_num) :
2310       _heap(G1CollectedHeap::heap()),
2311       _claimer(thread_num == 0 ? G1CollectedHeap::heap()->workers()->active_workers() : thread_num) {}
2312 
2313   virtual void object_iterate(ObjectClosure* cl, uint worker_id) {
2314     _heap->object_iterate_parallel(cl, worker_id, &_claimer);
2315   }
2316 };
2317 
2318 ParallelObjectIterator* G1CollectedHeap::parallel_object_iterator(uint thread_num) {
2319   return new G1ParallelObjectIterator(thread_num);
2320 }
2321 
2322 void G1CollectedHeap::object_iterate_parallel(ObjectClosure* cl, uint worker_id, HeapRegionClaimer* claimer) {
2323   IterateObjectClosureRegionClosure blk(cl);
2324   heap_region_par_iterate_from_worker_offset(&blk, claimer, worker_id);
2325 }
2326 
2327 void G1CollectedHeap::keep_alive(oop obj) {
2328   G1BarrierSet::enqueue(obj);
2329 }
2330 
2331 void G1CollectedHeap::heap_region_iterate(HeapRegionClosure* cl) const {
2332   _hrm->iterate(cl);
2333 }
2334 
2335 void G1CollectedHeap::heap_region_par_iterate_from_worker_offset(HeapRegionClosure* cl,
2336                                                                  HeapRegionClaimer *hrclaimer,
2337                                                                  uint worker_id) const {
2338   _hrm->par_iterate(cl, hrclaimer, hrclaimer->offset_for_worker(worker_id));
2339 }
2340 
2341 void G1CollectedHeap::heap_region_par_iterate_from_start(HeapRegionClosure* cl,
2342                                                          HeapRegionClaimer *hrclaimer) const {
2343   _hrm->par_iterate(cl, hrclaimer, 0);
2344 }
2345 
2346 void G1CollectedHeap::collection_set_iterate_all(HeapRegionClosure* cl) {


4925 
4926 void G1CollectedHeap::rebuild_strong_code_roots() {
4927   RebuildStrongCodeRootClosure blob_cl(this);
4928   CodeCache::blobs_do(&blob_cl);
4929 }
4930 
4931 void G1CollectedHeap::initialize_serviceability() {
4932   _g1mm->initialize_serviceability();
4933 }
4934 
4935 MemoryUsage G1CollectedHeap::memory_usage() {
4936   return _g1mm->memory_usage();
4937 }
4938 
4939 GrowableArray<GCMemoryManager*> G1CollectedHeap::memory_managers() {
4940   return _g1mm->memory_managers();
4941 }
4942 
4943 GrowableArray<MemoryPool*> G1CollectedHeap::memory_pools() {
4944   return _g1mm->memory_pools();
























4945 }
< prev index next >