On Thu, 8 May 2025 19:49:05 GMT, Patricio Chilano Mateo 
<pchilanom...@openjdk.org> 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

Reply via email to