< prev index next >
src/hotspot/share/runtime/sharedRuntime.cpp
Print this page
*** 2089,2104 ****
oop obj(_obj);
if (PrintBiasedLockingStatistics) {
Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
}
Handle h_obj(THREAD, obj);
! if (UseBiasedLocking) {
! // Retry fast entry if bias is revoked to avoid unnecessary inflation
! ObjectSynchronizer::fast_enter(h_obj, lock, true, CHECK);
! } else {
! ObjectSynchronizer::slow_enter(h_obj, lock, CHECK);
! }
assert(!HAS_PENDING_EXCEPTION, "Should have no exception here");
JRT_BLOCK_END
JRT_END
// Handles the uncommon cases of monitor unlocking in compiled code
--- 2089,2099 ----
oop obj(_obj);
if (PrintBiasedLockingStatistics) {
Atomic::inc(BiasedLocking::slow_path_entry_count_addr());
}
Handle h_obj(THREAD, obj);
! ObjectSynchronizer::enter(h_obj, lock, CHECK);
assert(!HAS_PENDING_EXCEPTION, "Should have no exception here");
JRT_BLOCK_END
JRT_END
// Handles the uncommon cases of monitor unlocking in compiled code
*** 2125,2135 ****
#endif /* MIGHT_HAVE_PENDING */
{
// Exit must be non-blocking, and therefore no exceptions can be thrown.
EXCEPTION_MARK;
! ObjectSynchronizer::slow_exit(obj, lock, THREAD);
}
#ifdef MIGHT_HAVE_PENDING
if (pending_excep != NULL) {
THREAD->set_pending_exception(pending_excep, pending_file, pending_line);
--- 2120,2130 ----
#endif /* MIGHT_HAVE_PENDING */
{
// Exit must be non-blocking, and therefore no exceptions can be thrown.
EXCEPTION_MARK;
! ObjectSynchronizer::exit(obj, lock, THREAD);
}
#ifdef MIGHT_HAVE_PENDING
if (pending_excep != NULL) {
THREAD->set_pending_exception(pending_excep, pending_file, pending_line);
< prev index next >