RFR: 8268902: Testing for threadObj != NULL is unnecessary in handshake

Coleen Phillimore coleen.phillimore at oracle.com
Mon Jun 21 15:41:34 UTC 2021



On 6/21/21 12:28 AM, David Holmes wrote:
> On Wed, 16 Jun 2021 16:03:04 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>
>> The handshake code tests if the JavaThread->is_exiting or that the threadObj() is null. Ever since JDK-8244997, once the JavaThread is running, the _threadObj won't be null until JavaThread is destroyed. So testing is_exiting is all you need to do.
>> In gtest, the test JavaThread doesn't create a _threadObj JDK-8215948 so removing this unnecessary test allows writing gtests for handshakes.
>>
>> Tested with tier1-6.
> Hi Coleen,
>
> What about an attaching thread that hits a handshake when trying to allocate the java.lang.Thread object?

The attaching thread can't be handshake because it hasn't been added to 
the Threads list until threadObj is initialized.  As far as I can tell, 
you can't handshake a thread that's not on the list.

Coleen

>
> David
>
> -------------
>
> PR: https://git.openjdk.java.net/jdk/pull/4512



More information about the hotspot-runtime-dev mailing list