equal
deleted
inserted
replaced
4923 // In particular a thread must never block on the Threads_lock while |
4923 // In particular a thread must never block on the Threads_lock while |
4924 // holding the Parker:: mutex. If safepoints are pending both the |
4924 // holding the Parker:: mutex. If safepoints are pending both the |
4925 // the ThreadBlockInVM() CTOR and DTOR may grab Threads_lock. |
4925 // the ThreadBlockInVM() CTOR and DTOR may grab Threads_lock. |
4926 ThreadBlockInVM tbivm(jt); |
4926 ThreadBlockInVM tbivm(jt); |
4927 |
4927 |
|
4928 // Can't access interrupt state now that we are _thread_blocked. If we've |
|
4929 // been interrupted since we checked above then _counter will be > 0. |
|
4930 |
4928 // Don't wait if cannot get lock since interference arises from |
4931 // Don't wait if cannot get lock since interference arises from |
4929 // unblocking. Also. check interrupt before trying wait |
4932 // unblocking. |
4930 if (jt->is_interrupted(false) || |
4933 if (os::Solaris::mutex_trylock(_mutex) != 0) { |
4931 os::Solaris::mutex_trylock(_mutex) != 0) { |
|
4932 return; |
4934 return; |
4933 } |
4935 } |
4934 |
4936 |
4935 int status; |
4937 int status; |
4936 |
4938 |