RFR: JDK-8319662 ForkJoinPool trims worker threads too slowly [v8]

Viktor Klang vklang at openjdk.org
Tue Dec 5 16:34:39 UTC 2023


On Mon, 4 Dec 2023 13:56:55 GMT, Doug Lea <dl at openjdk.org> wrote:

>> This update cascades timeouts to trim subsequent workers after the first  keepAlive inactive period.
>
> 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 10 additional commits since the last revision:
> 
>  - Merge branch 'openjdk:master' into JDK-8319662
>  - Remove unnecessary re-interrupt
>  - Merge branch 'openjdk:master' into JDK-8319662
>  - Reduce oversignalling and contention; add test
>  - Revert 2 lines in method scan
>  - Merge branch 'openjdk:master' into JDK-8319662
>  - Split up method awaitWork; other associated changes.
>  - Merge branch 'openjdk:master' into JDK-8319662
>  - tweak cascades; reinstate an @Contended; resolve JDK-8319498
>  - Support cascading idle timeouts

src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1226:

> 1224:         int nsteals;               // number of steals from other queues
> 1225:         @jdk.internal.vm.annotation.Contended("w")
> 1226:         volatile int parking;      // nonzero if parked in awaitWork

@DougLea Nice. Seems preferable not to have to track another volatile reference (parker) and instead going the route you did with a marker + owner.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16725#discussion_r1415930663


More information about the core-libs-dev mailing list