< prev index next >

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

Print this page
rev 56098 : imported patch 8226705-8221734-baseline
rev 56099 : imported patch 8226705-rebase

*** 264,277 **** void unlink(nmethod* nm) { // Unlinking of the dependencies must happen before the // handshake separating unlink and purge. nm->flush_dependencies(false /* delete_immediately */); ! // We don't need to take the lock when unlinking nmethods from // the Method, because it is only concurrently unlinked by // the entry barrier, which acquires the per nmethod lock. ! nm->unlink_from_method(false /* acquire_lock */); if (nm->is_osr_method()) { // Invalidate the osr nmethod before the handshake. The nmethod // will be made unloaded after the handshake. Then invalidate_osr_method() // will be called again, which will be a no-op. --- 264,278 ---- void unlink(nmethod* nm) { // Unlinking of the dependencies must happen before the // handshake separating unlink and purge. nm->flush_dependencies(false /* delete_immediately */); ! // unlink_from_method will take the CompiledMethod_lock. ! // In this case we don't strictly need it when unlinking nmethods from // the Method, because it is only concurrently unlinked by // the entry barrier, which acquires the per nmethod lock. ! nm->unlink_from_method(); if (nm->is_osr_method()) { // Invalidate the osr nmethod before the handshake. The nmethod // will be made unloaded after the handshake. Then invalidate_osr_method() // will be called again, which will be a no-op.
< prev index next >