diff src/share/vm/code/nmethod.hpp @ 20432:aff6ccb506cb

8056154: JVM crash with EXCEPTION_ACCESS_VIOLATION when there are many threads running Summary: Don't make compiled MH intrinsics not entrant when redefining classes Reviewed-by: kvn, vlivanov
author iveresov
date Fri, 05 Sep 2014 14:39:45 -0700
parents 2c6ef90f030a
children b12a2a9b05ca
line wrap: on
line diff
--- a/src/share/vm/code/nmethod.hpp	Wed Sep 03 15:26:06 2014 +0400
+++ b/src/share/vm/code/nmethod.hpp	Fri Sep 05 14:39:45 2014 -0700
@@ -448,7 +448,10 @@
   // alive.  It is used when an uncommon trap happens.  Returns true
   // if this thread changed the state of the nmethod or false if
   // another thread performed the transition.
-  bool  make_not_entrant() { return make_not_entrant_or_zombie(not_entrant); }
+  bool  make_not_entrant() {
+    assert(!method()->is_method_handle_intrinsic(), "Cannot make MH intrinsic not entrant");
+    return make_not_entrant_or_zombie(not_entrant);
+  }
   bool  make_zombie()      { return make_not_entrant_or_zombie(zombie); }
 
   // used by jvmti to track if the unload event has been reported