< prev index next > src/hotspot/share/gc/shenandoah/shenandoahUnload.cpp
Print this page
virtual bool has_dead_oop(nmethod* nm) const {
assert(ShenandoahHeap::heap()->is_concurrent_weak_root_in_progress(), "Only for this phase");
ShenandoahNMethod* data = ShenandoahNMethod::gc_data(nm);
ShenandoahNMethodLocker locker(data->lock());
ShenandoahIsUnloadingOopClosure cl;
! data->oops_do(&cl);
return cl.is_unloading();
}
};
class ShenandoahCompiledICProtectionBehaviour : public CompiledICProtectionBehaviour {
virtual bool has_dead_oop(nmethod* nm) const {
assert(ShenandoahHeap::heap()->is_concurrent_weak_root_in_progress(), "Only for this phase");
ShenandoahNMethod* data = ShenandoahNMethod::gc_data(nm);
ShenandoahNMethodLocker locker(data->lock());
ShenandoahIsUnloadingOopClosure cl;
! data->oops_do(&cl, /* fix_relocations = */ false, /* icic = */ nullptr);
return cl.is_unloading();
}
};
class ShenandoahCompiledICProtectionBehaviour : public CompiledICProtectionBehaviour {
< prev index next >