src/hotspot/share/gc/g1/g1CollectedHeap.cpp
changeset 59115 a129f10e1b9a
parent 59067 f080b08daace
child 59198 92c98aa0f801
equal deleted inserted replaced
59114:c545e449137c 59115:a129f10e1b9a
  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