RFR: 8264126: Remove TRAPS/THREAD parameter for class loading functions
Coleen Phillimore
coleenp at openjdk.java.net
Wed Mar 24 19:27:39 UTC 2021
On Wed, 24 Mar 2021 19:02:26 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> find_constrained_instance_or_array_klass only passes THREAD so that it can be used in a MutexLocker for SystemDictionary_lock. This can use the MutexLocker that gets Thread::current() without any harm to performance.
>>
>> The other functions add_loader_constraint, record_linking_constraints, and check_signature_loaders fall out from that.
>>
>> check_signature_loaders should throw an exception but it unfortunately makes the caller construct the exception message so it doesn't.
>>
>> Also: is_shared_class_visible{_impl}
>>
>> Tested with tier1 on 4 Oracle platforms (in progress)
>
> src/hotspot/share/classfile/systemDictionary.cpp line 1842:
>
>> 1840: klass = Universe::typeArrayKlassObj(t);
>> 1841: } else {
>> 1842: MutexLocker mu(SystemDictionary_lock);
>
> Since this is a clean up RFE, I think it's better to avoid changes that may impact performance. I would avoid adding calls to Thread::current() -- except for cases inside logging code. Maybe change TRAPS to Thread* current and move it to the first parameter? I.e., how you changed SystemDictionaryShared::check_linking_constraints().
This will not impact performance though, since we're already taking a lock.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3176
More information about the hotspot-dev
mailing list