hotspot/src/share/vm/memory/collectorPolicy.cpp
changeset 6985 e9364ec299ac
parent 6465 514cf4924008
child 7397 5b173b4ca846
equal deleted inserted replaced
6984:c6718f921eb6 6985:e9364ec299ac
   657     if (!gch->is_maximal_no_gc()) {
   657     if (!gch->is_maximal_no_gc()) {
   658       result = expand_heap_and_allocate(size, is_tlab);
   658       result = expand_heap_and_allocate(size, is_tlab);
   659     }
   659     }
   660     return result;   // could be null if we are out of space
   660     return result;   // could be null if we are out of space
   661   } else if (!gch->incremental_collection_will_fail()) {
   661   } else if (!gch->incremental_collection_will_fail()) {
   662     // The gc_prologues have not executed yet.  The value
       
   663     // for incremental_collection_will_fail() is the remanent
       
   664     // of the last collection.
       
   665     // Do an incremental collection.
   662     // Do an incremental collection.
   666     gch->do_collection(false            /* full */,
   663     gch->do_collection(false            /* full */,
   667                        false            /* clear_all_soft_refs */,
   664                        false            /* clear_all_soft_refs */,
   668                        size             /* size */,
   665                        size             /* size */,
   669                        is_tlab          /* is_tlab */,
   666                        is_tlab          /* is_tlab */,
   737 bool GenCollectorPolicy::should_try_older_generation_allocation(
   734 bool GenCollectorPolicy::should_try_older_generation_allocation(
   738         size_t word_size) const {
   735         size_t word_size) const {
   739   GenCollectedHeap* gch = GenCollectedHeap::heap();
   736   GenCollectedHeap* gch = GenCollectedHeap::heap();
   740   size_t gen0_capacity = gch->get_gen(0)->capacity_before_gc();
   737   size_t gen0_capacity = gch->get_gen(0)->capacity_before_gc();
   741   return    (word_size > heap_word_size(gen0_capacity))
   738   return    (word_size > heap_word_size(gen0_capacity))
   742          || (GC_locker::is_active_and_needs_gc())
   739          || GC_locker::is_active_and_needs_gc()
   743          || (   gch->last_incremental_collection_failed()
   740          || gch->incremental_collection_failed();
   744              && gch->incremental_collection_will_fail());
       
   745 }
   741 }
   746 
   742 
   747 
   743 
   748 //
   744 //
   749 // MarkSweepPolicy methods
   745 // MarkSweepPolicy methods