On Tue, 28 Jun 2022 22:33:07 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> This fixes a bug in the debug agent when there is a request to suspend a 
> virtual thread that has already terminated. The issue was that unless the 
> debug agent was currently under a "suspend all", it would not properly put 
> the virtual thread on the `otherThreads` list, and instead added it to 
> `runningVThreads`. This meant at the end of `insertThread()` the following 
> code tried to do a JVMTI `SetThreadLocalStorage`, which can't be done on a 
> terminated thread.
> 
> 
>         if (list != &otherThreads) {
>             setThreadLocalStorage(node->thread, (void*)node);
>         }

This pull request has now been integrated.

Changeset: 29ea6429
Author:    Chris Plummer <cjplum...@openjdk.org>
URL:       
https://git.openjdk.org/jdk19/commit/29ea6429d2f906a61331aab1aef172d0d854fb6f
Stats:     183 lines in 4 files changed: 180 ins; 1 del; 2 mod

8287847: Fatal Error when suspending virtual thread after it has terminated

Reviewed-by: alanb, sspitsyn

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

PR: https://git.openjdk.org/jdk19/pull/88

Reply via email to