< 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 >