On Tue, 9 Aug 2022 08:25:49 GMT, Thomas Stuefe <[email protected]> wrote:
>> Please review this fix for a problem discovered by @stuart-marks in the >> course of examining the VM shutdown behaviour. The VM code assumed that only >> unattached threads called JNI's DestroyJavaVM and so they were always >> attached as non-daemon threads. But it is perfectly valid to call >> DestroyJavaVM from an already attached thread, which could be a daemon. The >> fix simply checks whether the caller is a daemon or not and adjusts the >> expected count of active threads to see. There is also an adjustment to the >> thread termination logic to also notify at the right time. >> >> Thanks to @stuart-marks for the reproducer in JBS - the longest part of this >> by many hours was converting the test over the jtreg. :) >> >> Testing: >> - the new test on all core platforms >> - tiers 1-3 >> Thanks. > > test/hotspot/jtreg/runtime/jni/daemonDestroy/Main.java line 36: > >> 34: static volatile Thread t1; >> 35: >> 36: // Note: not normal main(String[] args) > > Nit: why is it important that this not be a normal main? Maybe just rename it > to something very different? I will delete the comment. It was really a note-to-self after I finally debugged the NoSuchMethodError I was getting because I'd copied code that looks for a regular "main". ------------- PR: https://git.openjdk.org/jdk/pull/9803
