RFR: 8290036: adjustments to specification of Runtime::addShutdownHook
Alan Bateman
alanb at openjdk.org
Wed Aug 3 16:30:55 UTC 2022
On Fri, 8 Jul 2022 23:00:15 GMT, Stuart Marks <smarks at openjdk.org> wrote:
> Initial edits to addShutdownHook from Alex.
>
> See [JDK-8290036](https://bugs.openjdk.org/browse/JDK-8290036).
src/java.base/share/classes/java/lang/Runtime.java line 69:
> 67: * and
> 68: * {@link #removeShutdownHook removeShutdownHook}
> 69: * is prohibited. The shutdown hooks are then started in some unspecified order,
Are you planning to "reflow" to get the line lengths a bit more consistent? Only asking because some places after line breaks after 40-50 characters, a few others stray out beyond 100 characters.
src/java.base/share/classes/java/lang/Runtime.java line 71:
> 69: * is prohibited. The shutdown hooks are then started in some unspecified order,
> 70: * and they are allowed to run concurrently. Any already-existing threads and any
> 71: * newly started threads also continue to run concurrently during the shutdown sequence.
Instead of "Any already-existing threads" then you could say "Existing {@linkplain Thread#isAlive() live} threads".
src/java.base/share/classes/java/lang/Runtime.java line 78:
> 76: * In this case other threads (including shutdown hooks) continue to execute and can
> 77: * terminate the JVM via the {@link #halt halt} method.
> 78: * <h2><a id="termination">Virtual Machine Termination</a></h2>
You might want to insert a line break at the end of the "Shutdown Sequence" section so that it doesn't run into the "Virtual Machine Termination" section.
src/java.base/share/classes/java/lang/Runtime.java line 79:
> 77: * terminate the JVM via the {@link #halt halt} method.
> 78: * <h2><a id="termination">Virtual Machine Termination</a></h2>
> 79: * When the JVM terminates, all threads (daemon, non-daemon, and shutdown hooks) are immediately
"daemon, non-daemon, and shutdown hooks" reads like there are 3 kinds of threads. I would be tempted to drop "shutdown hooks" from this list or else phrase it as "all shutdown hooks and all other threads".
src/java.base/share/classes/java/lang/Runtime.java line 174:
> 172: * Uncaught exceptions are handled in shutdown hooks just as in any other thread,
> 173: * by invoking the {@link ThreadGroup#uncaughtException uncaughtException}
> 174: * method of the thread's {@link ThreadGroup} object. After the uncaught exception
Uncaught exception handling is a bit more complicated as there can be per-thread and default UHE set. I think it would be better to not mention ThreadGroup and instead just link to Thread#setDefaultUncaughtExceptionHandler.
-------------
PR: https://git.openjdk.org/jdk/pull/9437
More information about the core-libs-dev
mailing list