Thread waiting on the monitor usually can't uncontentiously reenter the monitor
after it gets notified because the monitor is still held by the notifying thread.
The reworked wait-morphing synchronization code in notify/notifyAll does not unpark
waiting thread anymore but simply shifts it from the Wait queue to the Entry queue.
In such a case, waiting thread itself can't report JVMTI monitor "waited" and
"contended_enter" events. So that, the "contended_enter" event is missed and the
"waited" event is reported after thread is woken up.
Current behavior is incorrect and must be fixed.
after it gets notified because the monitor is still held by the notifying thread.
The reworked wait-morphing synchronization code in notify/notifyAll does not unpark
waiting thread anymore but simply shifts it from the Wait queue to the Entry queue.
In such a case, waiting thread itself can't report JVMTI monitor "waited" and
"contended_enter" events. So that, the "contended_enter" event is missed and the
"waited" event is reported after thread is woken up.
Current behavior is incorrect and must be fixed.
- relates to
-
JDK-6562569 REGRESSION: can not see BLOCKED state change after patching 5104215 diff.
-
- Closed
-