88 return res; |
88 return res; |
89 } |
89 } |
90 |
90 |
91 void VM_G1IncCollectionPause::doit() { |
91 void VM_G1IncCollectionPause::doit() { |
92 G1CollectedHeap* g1h = G1CollectedHeap::heap(); |
92 G1CollectedHeap* g1h = G1CollectedHeap::heap(); |
93 assert(!_should_initiate_conc_mark || |
93 assert(!_should_initiate_conc_mark || g1h->should_do_concurrent_full_gc(_gc_cause), |
94 ((_gc_cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) || |
94 "only a GC locker, a System.gc(), stats update, whitebox, or a hum allocation induced GC should start a cycle"); |
95 (_gc_cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent) || |
|
96 _gc_cause == GCCause::_g1_humongous_allocation || |
|
97 _gc_cause == GCCause::_update_allocation_context_stats_inc), |
|
98 "only a GC locker, a System.gc(), stats update or a hum allocation induced GC should start a cycle"); |
|
99 |
95 |
100 if (_word_size > 0) { |
96 if (_word_size > 0) { |
101 // An allocation has been requested. So, try to do that first. |
97 // An allocation has been requested. So, try to do that first. |
102 _result = g1h->attempt_allocation_at_safepoint(_word_size, allocation_context(), |
98 _result = g1h->attempt_allocation_at_safepoint(_word_size, allocation_context(), |
103 false /* expect_null_cur_alloc_region */); |
99 false /* expect_null_cur_alloc_region */); |