RFR: 8286294 : ForkJoinPool.commonPool().close() spins [v4]

Martin Buchholz martin at openjdk.java.net
Sun May 8 05:49:41 UTC 2022


On Sat, 7 May 2022 11:29:32 GMT, Doug Lea <dl at openjdk.org> wrote:

>> Changes ForkJoinPool.close spec and code to trap close as a no-op if called on common pool
>
> Doug Lea has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - Accommodate restrictive SecurityManagers
>  - merge with loom updates
>    Merge remote-tracking branch 'refs/remotes/origin/JDK-8286294' into JDK-8286294
>  - Fix testLazySubmit; enable suite

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

> 3531: 
> 3532:     /**
> 3533:      * Unless this is the {@link #commonPool()}, initiates an orderly

clearer everywhere is
{@linkplain #commonPool common pool}

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

> 3534:      * shutdown in which previously submitted tasks are executed, but
> 3535:      * no new tasks will be accepted, and waits until all tasks have
> 3536:      * completed execution and the executor has terminated.

slightly clearer is
s/executor/pool/

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

> 3546:      *
> 3547:      * @throws SecurityException if a security manager exists and
> 3548:      *         shutting down this ExecutorService may manipulate

clearer and more consistent is
s/this ExecutorService/this pool/

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

> 3563:                 while (!terminated) {
> 3564:                     try {
> 3565:                         terminated = awaitTermination(1L, TimeUnit.DAYS);

I would use untimed wait

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

PR: https://git.openjdk.java.net/jdk/pull/8577


More information about the core-libs-dev mailing list