On Thu, 8 May 2025 19:17:19 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Patricio Chilano Mateo has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Rename awaitBlocked to awaitTrueAndBlocked
>
> 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.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25119#discussion_r2080371142

Reply via email to