< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp
Print this page
rev 59304 : 8245124: Shenandoah: optimize code root evacuation/update during concurrent class unloading
*** 24,33 ****
--- 24,34 ----
#include "precompiled.hpp"
#include "code/codeCache.hpp"
#include "code/icBuffer.hpp"
#include "code/nmethod.hpp"
+ #include "gc/shenandoah/shenandoahClosures.inline.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"
*** 270,280 ****
ShenandoahReentrantLocker locker(nm_data->lock());
// Heal oops and disarm
if (_bs->is_armed(nm)) {
! ShenandoahNMethod::heal_nmethod(nm);
_bs->disarm(nm);
}
// Clear compiled ICs and exception caches
if (!nm->unload_nmethod_caches(_unloading_occurred)) {
--- 271,282 ----
ShenandoahReentrantLocker locker(nm_data->lock());
// Heal oops and disarm
if (_bs->is_armed(nm)) {
! ShenandoahEvacOOMScope oom_evac_scope;
! ShenandoahNMethod::heal_nmethod_metadata(nm_data);
_bs->disarm(nm);
}
// Clear compiled ICs and exception caches
if (!nm->unload_nmethod_caches(_unloading_occurred)) {
< prev index next >