--- a/src/hotspot/share/code/nmethod.cpp Wed Jan 23 23:24:10 2019 -0800
+++ b/src/hotspot/share/code/nmethod.cpp Thu Jan 24 12:23:01 2019 +0100
@@ -1100,7 +1100,11 @@
"must be at safepoint");
// Unregister must be done before the state change
- Universe::heap()->unregister_nmethod(this);
+ {
+ MutexLockerEx ml(SafepointSynchronize::is_at_safepoint() ? NULL : CodeCache_lock,
+ Mutex::_no_safepoint_check_flag);
+ Universe::heap()->unregister_nmethod(this);
+ }
// Log the unloading.
log_state_change();