< prev index next >
src/hotspot/os/posix/os_posix.cpp
Print this page
@@ -2073,14 +2073,16 @@
// In particular a thread must never block on the Threads_lock while
// holding the Parker:: mutex. If safepoints are pending both the
// the ThreadBlockInVM() CTOR and DTOR may grab Threads_lock.
ThreadBlockInVM tbivm(jt);
+ // Can't access interrupt state now that we are _thread_blocked. If we've
+ // been interrupted since we checked above then _counter will be > 0.
+
// Don't wait if cannot get lock since interference arises from
- // unparking. Also re-check interrupt before trying wait.
- if (jt->is_interrupted(false) ||
- pthread_mutex_trylock(_mutex) != 0) {
+ // unparking.
+ if (pthread_mutex_trylock(_mutex) != 0) {
return;
}
int status;
if (_counter > 0) { // no wait needed
< prev index next >