On Tue, 7 Oct 2025 18:36:30 GMT, Patricio Chilano Mateo 
<[email protected]> wrote:

>> Please review the following fix. When blocking in 
>> `ObjectMonitor::enter_internal` we currently use timed-park for pinned 
>> virtual threads. This is done to alleviate some potential deadlocks cases 
>> where the successor is an unmounted virtual thread that cannot run. In 
>> particular this could happen during class loading/initialization if all 
>> other carriers are blocked waiting for the same class to be 
>> loaded/initialized.
>> This mechanism should be extended to cover `ObjectMonitor::reenter_internal` 
>> used in `Object.wait` (notification case). Also, the criteria to decide 
>> whether to do a timed-park should be based on whether there are unmounted 
>> vthreads already in the `_entry_list`, and not just if this is a pinned 
>> virtual thread. This covers mixed usages of the same ObjectMonitor between 
>> virtual threads and platform threads. This will become more relevant once we 
>> bring the changes currently in the fibers branch to preempt virtual threads 
>> during klass initialization.
>> 
>> These changes have been running in the loom pipeline for a couple of months 
>> already. I also added a new test case to 
>> test/jdk/java/lang/Thread/virtual/MonitorWaitNotify.java which deadlocks 
>> without these changes.
>> 
>> Thanks,
>> Patricio
>
> Patricio Chilano Mateo has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Add string in asserts

Marked as reviewed by alanb (Reviewer).

-------------

PR Review: https://git.openjdk.org/jdk/pull/27597#pullrequestreview-3327961626

Reply via email to