< prev index next >
src/hotspot/share/aot/aotCompiledMethod.cpp
Print this page
rev 56098 : imported patch 8226705-8221734-baseline
@@ -163,11 +163,11 @@
methodHandle the_method(method());
NoSafepointVerifier nsv;
{
// Enter critical section. Does not block for safepoint.
- MutexLocker pl(Patching_lock, Mutex::_no_safepoint_check_flag);
+ MutexLocker pl(CompiledMethod_lock, Mutex::_no_safepoint_check_flag);
if (*_state_adr == new_state) {
// another thread already performed this transition so nothing
// to do, but return false to indicate this.
return false;
@@ -186,16 +186,14 @@
method()->set_aot_code(NULL);
}
#endif
// Remove AOTCompiledMethod from method.
- if (method() != NULL && (method()->code() == this ||
- method()->from_compiled_entry() == verified_entry_point())) {
- HandleMark hm;
- method()->clear_code(false /* already owns Patching_lock */);
+ if (method() != NULL) {
+ method()->unlink_code(this);
}
- } // leave critical region under Patching_lock
+ } // leave critical region under CompiledMethod_lock
if (TraceCreateZombies) {
ResourceMark m;
const char *new_state_str = (new_state == not_entrant) ? "not entrant" : "not used";
@@ -214,11 +212,11 @@
methodHandle the_method(method());
NoSafepointVerifier nsv;
{
// Enter critical section. Does not block for safepoint.
- MutexLocker pl(Patching_lock, Mutex::_no_safepoint_check_flag);
+ MutexLocker pl(CompiledMethod_lock, Mutex::_no_safepoint_check_flag);
if (*_state_adr == in_use) {
// another thread already performed this transition so nothing
// to do, but return false to indicate this.
return false;
@@ -228,11 +226,11 @@
OrderAccess::storestore();
*_state_adr = in_use;
// Log the transition once
log_state_change();
- } // leave critical region under Patching_lock
+ } // leave critical region under CompiledMethod_lock
if (TraceCreateZombies) {
ResourceMark m;
tty->print_cr("aot method <" INTPTR_FORMAT "> %s code made entrant", p2i(this), this->method() ? this->method()->name_and_sig_as_C_string() : "null");
< prev index next >