Mercurial > hg > truffle
changeset 1649:a528509c992b
6968336: VM crash guarantee(!nm->is_zombie()) failed: cannot lock a zombie method
Reviewed-by: twisti
author | never |
---|---|
date | Thu, 15 Jul 2010 08:54:48 -0700 |
parents | 8099e71601df |
children | 61fdaf88f57f 083fde3b838e |
files | src/share/vm/prims/jvmtiCodeBlobEvents.cpp |
diffstat | 1 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/prims/jvmtiCodeBlobEvents.cpp Wed Jul 14 14:47:34 2010 -0700 +++ b/src/share/vm/prims/jvmtiCodeBlobEvents.cpp Thu Jul 15 08:54:48 2010 -0700 @@ -118,7 +118,6 @@ for (int i=0; i<_global_code_blobs->length(); i++) { JvmtiCodeBlobDesc* scb = _global_code_blobs->at(i); if (addr == scb->code_begin()) { - ShouldNotReachHere(); return; } } @@ -206,11 +205,11 @@ MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); nmethod* current = CodeCache::first_nmethod(); while (current != NULL) { - // Lock the nmethod so it can't be freed - nmethodLocker nml(current); - // Only notify for live nmethods if (current->is_alive()) { + // Lock the nmethod so it can't be freed + nmethodLocker nml(current); + // Don't hold the lock over the notify or jmethodID creation MutexUnlockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); current->get_and_cache_jmethod_id();