changeset 59166:db5097a1ec61

8235337: Shenandoah: Fix evac OOM scoping for concurrent class unloading Reviewed-by: zgu
author rkennke
date Wed, 04 Dec 2019 20:03:50 +0100
parents e71931b1c3b7
children f97907a7bba9
files src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp	Wed Dec 04 13:48:38 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp	Wed Dec 04 20:03:50 2019 +0100
@@ -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);
   }