RFR: JDK-8214097: Rework thread initialization and teardown logic

David Holmes david.holmes at oracle.com
Wed Dec 19 21:21:30 UTC 2018


Following on from the preliminary RFR:

http://mail.openjdk.java.net/pipermail/hotspot-dev/2018-December/035737.html

I've merged with Kim's changes from 8215097.

Bug: https://bugs.openjdk.java.net/browse/JDK-8214097
Webrev: http://cr.openjdk.java.net/~dholmes/8214097/webrev.v2/

Changes since previous discussion:

- Replaced Kim's initial_thread_created assertion with a check of 
Thread::current_or_null, with an explanation

- Removed NJT list addition at construction time as it's not needed 
after 8215097.

- Moved the JavaThread call to this->exit(false); from the end of 
thread_main_inner to the start of post_run - as Markus suggested. This 
also necessitated a change to the gtest logic compared to the original 
as it has to override post_run() now to avoid the exit call.

- Made get_thread_name_string virtual so that the JavaThread subclasses 
in the gtest can override it and allow their names to be seen in hs_err 
files. (Makes debugging so much easier when you know which thread crashed!).

Testing:
  - Mach 5 tiers 1 - 3
  - All runtime tests with:
    - default GC
    - ZGC
    - Shenandoah GC
- gc/g1
- gc/serial
- gc/epsilon
- gc/shenandoah

Thanks,
David


More information about the hotspot-dev mailing list