src/hotspot/share/code/nmethod.cpp
changeset 53500 f618cfbaf35b
parent 53282 cb7fff9105a8
child 53641 c572eb605087
child 53651 0331b08811ad
--- 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();