260 |
260 |
261 G1HRPrinter _hr_printer; |
261 G1HRPrinter _hr_printer; |
262 |
262 |
263 // Return true if an explicit GC should start a concurrent cycle instead |
263 // Return true if an explicit GC should start a concurrent cycle instead |
264 // of doing a STW full GC. A concurrent cycle should be started if: |
264 // of doing a STW full GC. A concurrent cycle should be started if: |
265 // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, |
265 // (a) cause == _g1_humongous_allocation, |
266 // (b) cause == _g1_humongous_allocation, |
266 // (b) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent, |
267 // (c) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent, |
267 // (c) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent, |
268 // (d) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent, |
268 // (d) cause == _wb_conc_mark, |
269 // (e) cause == _wb_conc_mark, |
269 // (e) cause == _g1_periodic_collection and +G1PeriodicGCInvokesConcurrent. |
270 // (f) cause == _g1_periodic_collection and +G1PeriodicGCInvokesConcurrent. |
|
271 bool should_do_concurrent_full_gc(GCCause::Cause cause); |
270 bool should_do_concurrent_full_gc(GCCause::Cause cause); |
272 |
271 |
273 // Attempt to start a concurrent cycle with the indicated cause. |
272 // Attempt to start a concurrent cycle with the indicated cause. |
274 // precondition: should_do_concurrent_full_gc(cause) |
273 // precondition: should_do_concurrent_full_gc(cause) |
275 bool try_collect_concurrently(GCCause::Cause cause, |
274 bool try_collect_concurrently(GCCause::Cause cause, |