2381 void G1CollectedHeap::print_on_extended(outputStream* st) const { |
2381 void G1CollectedHeap::print_on_extended(outputStream* st) const { |
2382 PrintRegionClosure blk(st); |
2382 PrintRegionClosure blk(st); |
2383 _hrs->iterate(&blk); |
2383 _hrs->iterate(&blk); |
2384 } |
2384 } |
2385 |
2385 |
2386 class PrintOnThreadsClosure : public ThreadClosure { |
|
2387 outputStream* _st; |
|
2388 public: |
|
2389 PrintOnThreadsClosure(outputStream* st) : _st(st) { } |
|
2390 virtual void do_thread(Thread *t) { |
|
2391 t->print_on(_st); |
|
2392 } |
|
2393 }; |
|
2394 |
|
2395 void G1CollectedHeap::print_gc_threads_on(outputStream* st) const { |
2386 void G1CollectedHeap::print_gc_threads_on(outputStream* st) const { |
2396 if (ParallelGCThreads > 0) { |
2387 if (ParallelGCThreads > 0) { |
2397 workers()->print_worker_threads(); |
2388 workers()->print_worker_threads_on(st); |
2398 } |
2389 } |
2399 st->print("\"G1 concurrent mark GC Thread\" "); |
2390 |
2400 _cmThread->print(); |
2391 _cmThread->print_on(st); |
2401 st->cr(); |
2392 st->cr(); |
2402 st->print("\"G1 concurrent refinement GC Threads\" "); |
2393 |
2403 PrintOnThreadsClosure p(st); |
2394 _cm->print_worker_threads_on(st); |
2404 _cg1r->threads_do(&p); |
2395 |
2405 st->cr(); |
2396 _cg1r->print_worker_threads_on(st); |
2406 st->print("\"G1 zero-fill GC Thread\" "); |
2397 |
2407 _czft->print_on(st); |
2398 _czft->print_on(st); |
2408 st->cr(); |
2399 st->cr(); |
2409 } |
2400 } |
2410 |
2401 |
2411 void G1CollectedHeap::gc_threads_do(ThreadClosure* tc) const { |
2402 void G1CollectedHeap::gc_threads_do(ThreadClosure* tc) const { |