Skip to content

Commit 4f1a10f

Browse files
committed
8332360: JVM hangs at exit when running on a uniprocessor
Reviewed-by: dholmes, dcubed, shade
1 parent c3bc23f commit 4f1a10f

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/hotspot/share/runtime/objectMonitor.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,13 @@ void ObjectMonitor::ReenterI(JavaThread* current, ObjectWaiter* currentNode) {
987987
guarantee(v == ObjectWaiter::TS_ENTER || v == ObjectWaiter::TS_CXQ, "invariant");
988988
assert(owner_raw() != current, "invariant");
989989

990+
// This thread has been notified so try to reacquire the lock.
991+
if (TryLock(current) == TryLockResult::Success) {
992+
break;
993+
}
994+
995+
// If that fails, spin again. Note that spin count may be zero so the above TryLock
996+
// is necessary.
990997
if (TrySpin(current)) {
991998
break;
992999
}

0 commit comments

Comments
 (0)