< prev index next > src/hotspot/share/gc/shenandoah/shenandoahOldGC.cpp
Print this page
// 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.
heap->concurrent_final_roots();
+ // Arm the nmethods to possibly flip the barriers to idle.
+ vmop_entry_final_verify();
+
+ // Now we are back at concurrent phase, process nmethods to fix their barriers.
+ // TODO: Is this really safe to do when we overlap with young GC?
+ ShenandoahCodeRoots::disarm_nmethods();
+
// 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();
heap->free_set()->log_status_under_lock();
< prev index next >