RFR: 8355726: LinkedBlockingDeque fixes and improvements

Doug Lea dl at openjdk.org
Mon May 12 11:11:51 UTC 2025


On Fri, 9 May 2025 14:50:49 GMT, Viktor Klang <vklang at openjdk.org> wrote:

>>> I'm a bit uneasy about incrementing the `count` in `linkFirst` but not enforcing the invariant. What's the benefit to changing linkFirst and linkLast to return void instead of keeping the original returning a boolean?
>> 
>> I based the approach on the LBQ enqueue() and dequeue() methods, which also return void and have a comment with the assertion.
>
> I understand, alas LBQ enqueue() and dequeue() don't increment a counter. It seems a bit brittle that the invariant needs to be maintained *externally* to the state modification. For the sake of maintainability I think the checks and the increment/decrement belongs in the same unit of work.

This is what I meant about reducing sequential consistency. But it does work out in terms of maintaining specs.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24925#discussion_r2084442740


More information about the core-libs-dev mailing list