< prev index next > src/hotspot/share/interpreter/interpreterRuntime.cpp
Print this page
current->last_frame().interpreter_frame_verify_monitor(elem);
#endif
Handle h_obj(current, elem->obj());
assert(Universe::heap()->is_in_or_null(h_obj()),
"must be null or an object");
+ ThreadOnMonitorEnter tme(current);
ObjectSynchronizer::enter(h_obj, elem->lock(), current);
assert(Universe::heap()->is_in_or_null(elem->obj()),
"must be null or an object");
#ifdef ASSERT
- current->last_frame().interpreter_frame_verify_monitor(elem);
+ if (!current->preempting()) current->last_frame().interpreter_frame_verify_monitor(elem);
#endif
JRT_END
// NOTE: We provide a separate implementation for the new lightweight locking to workaround a limitation
// of registers in x86_32. This entry point accepts an oop instead of a BasicObjectLock*.
JRT_ENTRY_NO_ASYNC(void, InterpreterRuntime::monitorenter_obj(JavaThread* current, oopDesc* obj))
assert(LockingMode == LM_LIGHTWEIGHT, "Should call monitorenter() when not using the new lightweight locking");
Handle h_obj(current, cast_to_oop(obj));
assert(Universe::heap()->is_in_or_null(h_obj()),
"must be null or an object");
+ ThreadOnMonitorEnter tme(current);
ObjectSynchronizer::enter(h_obj, nullptr, current);
return;
JRT_END
JRT_LEAF(void, InterpreterRuntime::monitorexit(BasicObjectLock* elem))
< prev index next >