equal
deleted
inserted
replaced
1999 } |
1999 } |
2000 } |
2000 } |
2001 |
2001 |
2002 bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) { |
2002 bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) { |
2003 switch (cause) { |
2003 switch (cause) { |
2004 case GCCause::_gc_locker: return GCLockerInvokesConcurrent; |
|
2005 case GCCause::_g1_humongous_allocation: return true; |
2004 case GCCause::_g1_humongous_allocation: return true; |
2006 case GCCause::_g1_periodic_collection: return G1PeriodicGCInvokesConcurrent; |
2005 case GCCause::_g1_periodic_collection: return G1PeriodicGCInvokesConcurrent; |
2007 default: return is_user_requested_concurrent_full_gc(cause); |
2006 default: return is_user_requested_concurrent_full_gc(cause); |
2008 } |
2007 } |
2009 } |
2008 } |
2279 gc_count_before, |
2278 gc_count_before, |
2280 old_marking_started_before); |
2279 old_marking_started_before); |
2281 } else if (GCLocker::should_discard(cause, gc_count_before)) { |
2280 } else if (GCLocker::should_discard(cause, gc_count_before)) { |
2282 // Indicate failure to be consistent with VMOp failure due to |
2281 // Indicate failure to be consistent with VMOp failure due to |
2283 // another collection slipping in after our gc_count but before |
2282 // another collection slipping in after our gc_count but before |
2284 // our request is processed. _gc_locker collections upgraded by |
2283 // our request is processed. |
2285 // GCLockerInvokesConcurrent are handled above and never discarded. |
|
2286 return false; |
2284 return false; |
2287 } else if (cause == GCCause::_gc_locker || cause == GCCause::_wb_young_gc |
2285 } else if (cause == GCCause::_gc_locker || cause == GCCause::_wb_young_gc |
2288 DEBUG_ONLY(|| cause == GCCause::_scavenge_alot)) { |
2286 DEBUG_ONLY(|| cause == GCCause::_scavenge_alot)) { |
2289 |
2287 |
2290 // Schedule a standard evacuation pause. We're setting word_size |
2288 // Schedule a standard evacuation pause. We're setting word_size |