RFR: 8257831: Suspend with handshakes [v2]

David Holmes dholmes at openjdk.java.net
Wed Mar 31 07:02:36 UTC 2021


On Tue, 30 Mar 2021 16:50:50 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

>> Robbin Ehn has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits:
>> 
>>  - Merge branch 'master' into SuspendInHandshake
>>  - 8257831: Suspend with handshake (review baseline)
>
> src/hotspot/os/posix/signals_posix.cpp line 1587:
> 
>> 1585:   // destructor has completed.
>> 1586: 
>> 1587:   if (thread->is_Java_thread() && thread->as_Java_thread()->is_terminated()) {
> 
> We need @dholmes-ora to verify that this version of the code will
> still solve the bug he was fixing when he added old L1610.

Thanks @dcubed-ojdk - no it won't. The problem is that the signal can hit very late in a thread's termination process, after the JavaThread destructor has executed, so no query of JavaThread state is possible. So we needed something in the Thread state and the SR_lock was a good enough proxy for that. It may be possible to use a different Thread field (perhaps _ParkEvent but encapsulated in a Thread::has_terminated() helper method).

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

PR: https://git.openjdk.java.net/jdk/pull/3191


More information about the hotspot-runtime-dev mailing list