Greetings all,

I was recently introduced to the deadlock described in JDK-8047720 and
fixed in JDK9. The fix seems a little messy to me, and it looks like it
left some very short races in the code. So I decided to clean up the code.
See attached diff.

The change takes a step back and acquires PeriodicTask_lock in
WatcherThread::stop (like before the fix in JDK9), but this time safepoints
are allowed to proceed when acquiring PeriodicTask_lock, preventing the
deadlock.

Let me know what you think,
Carsten

Attachment: patch
Description: Binary data

Reply via email to