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

Remove debug agent code for special handling of Thread.resume()

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 20
    • 20
    • core-svc
    • b24

      The debug agent sets a breakpoint in Thread.resume() so it can prevent the debugger from suspending threads while in the resume call:

                   /*
                    * Track the resuming thread by marking it as being within
                    * a resume and by setting up for notification on
                    * a frame pop or exception. We won't allow the debugger
                    * to suspend threads while any thread is within a
                    * call to resume. This (along with the block below)
                    * ensures that when the debugger
                    * suspends a thread it will remain suspended.
                    */
                   trackAppResume(resumer);

      Now that Thread.resume() is unsupported and just throws UnsupportedOperationException, all debug agent code related to this support can be removed. It's at least a couple of hundred lines of code, and with a fair amount of confusing synchronization. It will be nice to see it go.

      For removal, search for code that references "AppResume" (do a case insensitive search). That should catch everything. I believe it is all contained to threadControl.c

            cjplummer Chris Plummer
            cjplummer Chris Plummer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: