On Thu, 8 May 2025 19:49:05 GMT, Patricio Chilano Mateo
<[email protected]> wrote:
>> test/jdk/java/lang/management/ThreadMXBean/VirtualThreadDeadlocks.java line
>> 99:
>>
>>> 97: System.out.println("Waiting for thread1 and thread2 to deadlock
>>> ...");
>>> 98: awaitBlocked(thread1, reached1);
>>> 99: awaitBlocked(thread2, reached2);
>>
>> This looks okay but does mean that awaitBlocked is doing two things, maybe
>> it should be rename to awaitTrueAndBlocked.
>>
>> An alternative that would remove AtomicReference from the picture is to just
>> have two volatile booleans and have the main thread poll both until true.
>> That would leave the use of awaitBlock unchanged but what you have is okay
>> too.
>
> Yes, I actually had that in an initial version. Then I thought it was cleaner
> to just have all waiting logic in awaitBlocked so I changed it. I renamed
> `awaitBlocked` to `awaitTrueAndBlocked` for now. But let me know if you
> prefer the two volatile booleans instead.
>
> Also, we could remove the `CyclicBarrier` and have each thread poll the
> other’s thread flag now, but given this bug was found due to the barrier I
> left it as is.
Okay, I think what you have is good.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25119#discussion_r2081022353