Mercurial > hg > truffle
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