On Wed, 4 Feb 2026 14:38:03 GMT, Doug Lea <[email protected]> wrote:
>> Changes signal filtering to avoid possible starvation
>
> Doug Lea has updated the pull request with a new target base due to a merge
> or a rebase. The incremental webrev excludes the unrelated changes brought in
> by the merge/rebase. The pull request contains 43 additional commits since
> the last revision:
>
> - Merge branch 'openjdk:master' into JDK-8373118
> - reduce interference after stalls
> - Avoid yield, for performance test
> - Don't oversignal LIFO
> - Try out different approach
> - Simplify scan mode control by moving and reworking topLevelExec and
> throwing on trim
> - Another set of contend vs deactivate vs park tradeoffs
> - Fix missing undo
> - Merge branch 'openjdk:master' into JDK-8373118
> - Use explicit store fences or atomics
> - ... and 33 more: https://git.openjdk.org/jdk/compare/460535d9...7ae93ed7
src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1988:
> 1986: ran = 1;
> 1987: ++taken;
> 1988: if (propagate &&
> U.getReferenceAcquire(a, np) != null)
At this point, it might even make sense to fold the propagate logic into the
if-clause itself. Something like:
ran = 1;
++taken;
if ((rnt != null) &&
(ps < 0 ||
((qid & 1) == 0 &&
(fifo != 0 || taken == 1))) &&
U.getReferenceAcquire(a, np) != null)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2768875722