< prev index next >

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

Print this page
rev 56205 : imported patch 8226705-v1

*** 1,7 **** /* ! * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 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 >