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