< prev index next >

src/hotspot/share/gc/z/zBarrierSet.cpp

Concurrent class unloading
 #endif
 #include "gc/z/zBarrierSet.hpp"
 #include "gc/z/zBarrierSetAssembler.hpp"
 #include "gc/z/zGlobals.hpp"
 #include "gc/z/zHeap.inline.hpp"
+#include "gc/z/zNMethodBarrier.hpp"
 #include "gc/z/zThreadLocalData.hpp"
 #include "runtime/thread.hpp"
 
 ZBarrierSet::ZBarrierSet() :
     BarrierSet(make_barrier_set_assembler<ZBarrierSetAssembler>(),

@@ -78,5 +79,21 void ZBarrierSet::on_thread_detach(JavaThread* thread) { // Flush and free any remaining mark stacks ZHeap::heap()->mark_flush_and_free(thread); } + +bool ZBarrierSet::needs_nmethod_entry_barrier() const { + return ClassUnloading; +} + +int ZBarrierSet::nmethod_entry_barrier_state() const { + return (int)(ZAddressBadMask >> 32); +} + +ByteSize ZBarrierSet::nmethod_entry_barrier_state_thread_offset() const { + return ZThreadLocalData::address_nmethod_barrier_offset(); +} + +bool ZBarrierSet::on_nmethod_entry_barrier(nmethod* nm, nmethodBarrier* nmbarrier) { + return ZNMethodBarrier::on_nmethod_entry_barrier(nm, nmbarrier); +}
< prev index next >