# HG changeset patch # User rkennke # Date 1575473232 -3600 # Wed Dec 04 16:27:12 2019 +0100 # Node ID d17d2a529ad9f9f1112e165f2b5163b7ea18e2d6 # Parent 3b61c66ce6927ff4cca1a891443bc84f5c745ac5 8235337: Shenandoah: Fix evac OOM scoping for concurrent class unloading diff --git a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp @@ -26,6 +26,7 @@ #include "code/icBuffer.hpp" #include "code/nmethod.hpp" #include "gc/shenandoah/shenandoahCodeRoots.hpp" +#include "gc/shenandoah/shenandoahEvacOOMHandler.hpp" #include "gc/shenandoah/shenandoahHeap.inline.hpp" #include "gc/shenandoah/shenandoahNMethod.inline.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" @@ -221,7 +222,6 @@ ShenandoahReentrantLocker locker(nm_data->lock()); // Heal oops and disarm - ShenandoahEvacOOMScope scope; ShenandoahNMethod::heal_nmethod(nm); ShenandoahNMethod::disarm_nmethod(nm); @@ -258,6 +258,7 @@ } virtual void work(uint worker_id) { + ShenandoahEvacOOMScope evac_scope; ICRefillVerifierMark mark(_verifier); _iterator.nmethods_do(&_cl); }