On Thu, 8 May 2025 13:47:41 GMT, kabutz <d...@openjdk.org> wrote: >> src/java.base/share/classes/java/util/concurrent/LinkedBlockingDeque.java >> line 341: >> >>> 339: if (count >= capacity) >>> 340: return false; >>> 341: linkFirst(node); >> >> 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'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.
@kabutz I'd think maintaining the invariants within linkFirst and linkLast would be preferable (`count` must be re-read under the lock anyway) ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24925#discussion_r2135364751