Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8283467

runtime/Thread/StopAtExit.java needs updating

    XMLWordPrintable

Details

    • b16

    Description

      Thread.stop(), ThreadGroup.destroy(), ThreadGroup.isDestroyed(),
      ThreadGroup.setDaemon() are deprecated for removal:

      ----------direct:(19/1707)----------
      /System/Volumes/Data/work/shared/bug_hunt/thread_SMR_stress/jdk19_exp.git/open/test/hotspot/jtreg/runtime/Thread/StopAtExit.java:91: warning: [removal] setDaemon(boolean) in ThreadGroup has been deprecated and marked for removal
                  myTG.setDaemon(true);
                      ^
      /System/Volumes/Data/work/shared/bug_hunt/thread_SMR_stress/jdk19_exp.git/open/test/hotspot/jtreg/runtime/Thread/StopAtExit.java:101: warning: [removal] stop() in Thread has been deprecated and marked for removal
                          thread.stop();
                                ^
      /System/Volumes/Data/work/shared/bug_hunt/thread_SMR_stress/jdk19_exp.git/open/test/hotspot/jtreg/runtime/Thread/StopAtExit.java:125: warning: [removal] stop() in Thread has been deprecated and marked for removal
                  thread.stop();
                        ^
      /System/Volumes/Data/work/shared/bug_hunt/thread_SMR_stress/jdk19_exp.git/open/test/hotspot/jtreg/runtime/Thread/StopAtExit.java:142: warning: [removal] isDestroyed() in ThreadGroup has been deprecated and marked for removal
                      if (!myTG.isDestroyed()) {
                               ^
      /System/Volumes/Data/work/shared/bug_hunt/thread_SMR_stress/jdk19_exp.git/open/test/hotspot/jtreg/runtime/Thread/StopAtExit.java:146: warning: [removal] isDestroyed() in ThreadGroup has been deprecated and marked for removal
                  } else if (!myTG.isDestroyed()) {
                                  ^
      /System/Volumes/Data/work/shared/bug_hunt/thread_SMR_stress/jdk19_exp.git/open/test/hotspot/jtreg/runtime/Thread/StopAtExit.java:154: warning: [removal] destroy() in ThreadGroup has been deprecated and marked for removal
                          myTG.destroy();
                              ^
      6 warnings
      result: Passed. Compilation successful


      Will be switching from java.lang.Thread.stop() to JVM/TI StopThread().
      Will also be cleaning up the error handling since the JVM/TI APIs
      actually return error codes.

      The java.lang.ThreadGroup.destroy(), ThreadGroup.isDestroyed(),
      ThreadGroup.setDaemon() methods are used for cleaning up
      memory leaks that can be caused by async exception delivery.
      After the fix for:

          JDK-8282952 Thread::exit should be immune to Thread.stop

      is integrated, the code that does that cleanup should not be
      necessary. However, I may do cleanup as a separate RFE.

      Attachments

        Issue Links

          Activity

            People

              dcubed Daniel Daugherty
              dcubed Daniel Daugherty
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: