RFR: 8293592: Remove JVM_StopThread, stillborn, and related cleanup
David Holmes
dholmes at openjdk.org
Mon Sep 26 07:21:37 UTC 2022
On Fri, 23 Sep 2022 11:10:19 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> Now that Thread.stop has been degraded to throw `UnsupportedOperationException` (JDK-8299610) the only direct source of async exceptions is from JVMTI `StopThread`. We can remove the `JVM_StopThread` code, remove the `stillborn` field from `java.lang.Thread` and its associated accesses from the VM, and we can stop special-casing `ThreadDeath` handling (as was done for the JDK code as part of JDK-8299610).
>>
>> Note that JVMTI `StopThread` can only act on a thread that is alive, so it is no longer possible to stop a thread before it has been started.
>>
>> Also note that there is a change in behaviour for JNI `ExceptionDescribe` as it no longer ignores `ThreadDeath` exceptions (not that it was ever specified to ignore them, it simply mirrored the behaviour of the default `UncaughtExceptionHandler` in `java.lang.ThreadGroup` - which also no longer ignores them so the mirroring behaviour remains the same).
>>
>> Testing: tiers 1-3
>
> (JDK-8289610 is integrated now so once you sync up it should remove the changes from the dependent PR and reduce the list of changed files. You should be able to trim down the labels too.)
>
> I did a pass over the src/hotspot change and didn't spot any issues. It's good that stillborn can go away. The removal of the special-casing of ThreadDeath is consistent with the libs side of the change, including the change to ExceptionDescribe.
Thanks @AlanBateman !
-------------
PR: https://git.openjdk.org/jdk/pull/10400
More information about the hotspot-dev
mailing list