RFR: 8261127: Cleanup THREAD/TRAPS/CHECK usage in CDS code
Ioi Lam
iklam at openjdk.java.net
Fri Feb 5 03:17:43 UTC 2021
On Thu, 4 Feb 2021 23:39:51 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> While examining changes related to the TRAPS macro I noticed that a number of CDS related methods were passed a thread parameter that ended up never being used. Fixing this percolates up the call chain resulting in the ability to remove the parameter from other calls. In some places the thread is needed and has to be manifested via Thread::current(), but these are few and non-critical, and the cleanup of the API (including the benefit to the TRAPS work - see JDK-8252685) makes this worthwhile.
>>
>> I also changed `Thread* THREAD` to TRAPS where it relates to exception processing (even if CDS diverts to an abort path).
>>
>> Some uses of CHECK were removed that were only passing THREAD and the called code never triggers any exceptions.
>>
>> Added commentary where it is not clear why we don't use CHECK.
>>
>> Testing: local build and CI tiers 1-3
>>
>> Thanks,
>> David
>
> Changes requested by coleenp (Reviewer).
> I think separately we should make CATCH not fail in production.
I agree we should change the check to an assert.
It's not clear what `CATCH` means. Luckily we have very few use of it now.
In the Monty VM, we had a similar construct. Instead of CATCH, it's call MUST_SUCCEED (if I remember correctly). Like:
void test(TRAPS) {
Foo bar = some_func(x, y, z, MUST_SUCCEED);
...
}
-------------
PR: https://git.openjdk.java.net/jdk/pull/2397
More information about the hotspot-runtime-dev
mailing list