RFR(XS) 8189140 - SystemDictionaryShared::initialize() should be renamed to be more meaningful
David Holmes
david.holmes at oracle.com
Tue May 15 06:25:25 UTC 2018
Hi Ioi,
On 15/05/2018 4:07 PM, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8189140
> http://cr.openjdk.java.net/~iklam/jdk11/8189140-rename-system-dict-shared-initialize.v01/
>
>
> Summary:
>
> 1. Removed the forced initialization of a few classes used by AppCDS at
> JVM start-up.
> Instead, initialize these class on demand by calling
> InstanceKlass::initialize, which
> is a quick no-op if the class is already initialized.
Any reason not to just add them to the set of pre-loaded and
pre-initialized classes used with shared spaces in
initialize_preloaded_classes()?
Aside: It looks a little odd to lazy-init a couple of classes but then
assume/expect others (like SecureClassLoader) are already initialized.
But this seems functionally fine and a good tidy up (the class init
stuff really didn't belong as a side-effect). The only thing I'd be
double checking is that the same thread (presumably the main thread) is
guaranteed to be the one doing the initialization.
Thanks,
David
> 2. The only initialization left is that of a global lock. So I renamed
> the function
> to SystemDictionaryShared::initialize_locks().
>
> 3. I moved the call of this function from
> SystemDictionary::compute_java_loaders() to
> SystemDictionary::initialize() where it seems to fit.
>
> Testing with hs-tiers 1 and 2.
>
> Thanks
> - Ioi
More information about the hotspot-runtime-dev
mailing list