On Tue, 5 Nov 2024 15:31:11 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
>> Okay, fair enough. > > Using two blocking queues might also be possible: > * at the start of each iteration a thread does a `get` on its own queue > * at the end of each iteration, a thread does a put on the other thread's > queue > * we call put on the first thread's queue, to get things moving > > This should create the desired "ping-pong" effect. There are many ways to achieve this lock-step behaviour. In this case, the operation is extremely fast and there are only 2 threads waiting for each other so I believe a spinlock is the most appropriate. The major benefit of spinning is that we can be more confident that the threads will start each step at the approximately same time, increasing the chance to have a meaningful race. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21810#discussion_r1829600074