< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahOldGC.cpp

Print this page
*** 71,10 ***
--- 71,13 ---
  
      if (VerifyAfterGC) {
        Universe::verify();
      }
  
+     // Arm nmethods/stack for concurrent processing
+     ShenandoahCodeRoots::arm_nmethods();
+ 
      {
        ShenandoahTimingsTracker timing(ShenandoahPhaseTimings::final_mark_propagate_gc_state);
        heap->propagate_gc_state_to_all_threads();
      }
    }

*** 133,11 ***
  
    // We must execute this vm operation if we completed final mark. We cannot
    // return from here with weak roots in progress. This is not a valid gc state
    // for any young collections (or allocation failures) that interrupt the old
    // collection.
!   entry_final_roots();
  
    // After concurrent old marking finishes, we reclaim immediate garbage. Further, we may also want to expand OLD in order
    // to make room for anticipated promotions and/or for mixed evacuations.  Mixed evacuations are especially likely to
    // follow the end of OLD marking.
    heap->rebuild_free_set_within_phase();
--- 136,11 ---
  
    // We must execute this vm operation if we completed final mark. We cannot
    // return from here with weak roots in progress. This is not a valid gc state
    // for any young collections (or allocation failures) that interrupt the old
    // collection.
!   vmop_entry_final_roots();
  
    // After concurrent old marking finishes, we reclaim immediate garbage. Further, we may also want to expand OLD in order
    // to make room for anticipated promotions and/or for mixed evacuations.  Mixed evacuations are especially likely to
    // follow the end of OLD marking.
    heap->rebuild_free_set_within_phase();
< prev index next >