comparison 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
comparison
equal deleted inserted replaced
20428:4d8781a35525 20432:aff6ccb506cb
446 446
447 // Make the nmethod non entrant. The nmethod will continue to be 447 // Make the nmethod non entrant. The nmethod will continue to be
448 // alive. It is used when an uncommon trap happens. Returns true 448 // alive. It is used when an uncommon trap happens. Returns true
449 // if this thread changed the state of the nmethod or false if 449 // if this thread changed the state of the nmethod or false if
450 // another thread performed the transition. 450 // another thread performed the transition.
451 bool make_not_entrant() { return make_not_entrant_or_zombie(not_entrant); } 451 bool make_not_entrant() {
452 assert(!method()->is_method_handle_intrinsic(), "Cannot make MH intrinsic not entrant");
453 return make_not_entrant_or_zombie(not_entrant);
454 }
452 bool make_zombie() { return make_not_entrant_or_zombie(zombie); } 455 bool make_zombie() { return make_not_entrant_or_zombie(zombie); }
453 456
454 // used by jvmti to track if the unload event has been reported 457 // used by jvmti to track if the unload event has been reported
455 bool unload_reported() { return _unload_reported; } 458 bool unload_reported() { return _unload_reported; }
456 void set_unload_reported() { _unload_reported = true; } 459 void set_unload_reported() { _unload_reported = true; }