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