RFR: 8282952: Thread::exit should be immune to Thread.stop

David Holmes dholmes at openjdk.java.net
Mon Mar 21 08:05:51 UTC 2022


To allow Thread::exit to be immune from asynchronous exceptions causing corruption of state we introduce a simple async exception delivery deferral mechanism. Note that we still allow async exceptions to become the "pending async exception" so they are not lost (potentially desirable in other usecases), but we defer the delivery of that exception i.e when it is moved from being the "pending async exception" to being the "current pending exception" (which is the exception actually in the process of being propagated).

Testing:
 - runtime/Thread/StopAtExit.java combined with logging and debugging hooks to show that exceptions were being deferred
 - tiers 1-3

Thanks,
David

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

Commit messages:
 - Moved logging code
 - More debugging code removal
 - Remove debugging code
 - 8282952: Thread::exit should be immune to Thread.stop

Changes: https://git.openjdk.java.net/jdk/pull/7886/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7886&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8282952
  Stats: 48 lines in 3 files changed: 27 ins; 3 del; 18 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7886.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7886/head:pull/7886

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


More information about the hotspot-runtime-dev mailing list