src/hotspot/share/runtime/thread.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Sdiff src/hotspot/share/runtime

src/hotspot/share/runtime/thread.cpp

Print this page




3731   // Pre-initialize some JSR292 core classes to avoid deadlock during class loading.
3732   // It is done after compilers are initialized, because otherwise compilations of
3733   // signature polymorphic MH intrinsics can be missed
3734   // (see SystemDictionary::find_method_handle_intrinsic).
3735   initialize_jsr292_core_classes(CHECK_JNI_ERR);
3736 
3737   // This will initialize the module system.  Only java.base classes can be
3738   // loaded until phase 2 completes
3739   call_initPhase2(CHECK_JNI_ERR);
3740 
3741   // Always call even when there are not JVMTI environments yet, since environments
3742   // may be attached late and JVMTI must track phases of VM execution
3743   JvmtiExport::enter_start_phase();
3744 
3745   // Notify JVMTI agents that VM has started (JNI is up) - nop if no agents.
3746   JvmtiExport::post_vm_start();
3747 
3748   // Final system initialization including security manager and system class loader
3749   call_initPhase3(CHECK_JNI_ERR);
3750 
3751   // cache the system class loader
3752   SystemDictionary::compute_java_system_loader(CHECK_(JNI_ERR));
3753 
3754 #if INCLUDE_JVMCI
3755   if (EnableJVMCI) {
3756     // Initialize JVMCI eagerly if JVMCIPrintProperties is enabled.
3757     // The JVMCI Java initialization code will read this flag and
3758     // do the printing if it's set.
3759     bool init = JVMCIPrintProperties;
3760 
3761     if (!init) {
3762       // 8145270: Force initialization of JVMCI runtime otherwise requests for blocking
3763       // compilations via JVMCI will not actually block until JVMCI is initialized.
3764       init = UseJVMCICompiler && (!UseInterpreter || !BackgroundCompilation);
3765     }
3766 
3767     if (init) {
3768       JVMCIRuntime::force_initialization(CHECK_JNI_ERR);
3769     }
3770   }
3771 #endif
3772 




3731   // Pre-initialize some JSR292 core classes to avoid deadlock during class loading.
3732   // It is done after compilers are initialized, because otherwise compilations of
3733   // signature polymorphic MH intrinsics can be missed
3734   // (see SystemDictionary::find_method_handle_intrinsic).
3735   initialize_jsr292_core_classes(CHECK_JNI_ERR);
3736 
3737   // This will initialize the module system.  Only java.base classes can be
3738   // loaded until phase 2 completes
3739   call_initPhase2(CHECK_JNI_ERR);
3740 
3741   // Always call even when there are not JVMTI environments yet, since environments
3742   // may be attached late and JVMTI must track phases of VM execution
3743   JvmtiExport::enter_start_phase();
3744 
3745   // Notify JVMTI agents that VM has started (JNI is up) - nop if no agents.
3746   JvmtiExport::post_vm_start();
3747 
3748   // Final system initialization including security manager and system class loader
3749   call_initPhase3(CHECK_JNI_ERR);
3750 
3751   // cache the system and platform class loaders
3752   SystemDictionary::compute_java_loaders(CHECK_JNI_ERR);
3753 
3754 #if INCLUDE_JVMCI
3755   if (EnableJVMCI) {
3756     // Initialize JVMCI eagerly if JVMCIPrintProperties is enabled.
3757     // The JVMCI Java initialization code will read this flag and
3758     // do the printing if it's set.
3759     bool init = JVMCIPrintProperties;
3760 
3761     if (!init) {
3762       // 8145270: Force initialization of JVMCI runtime otherwise requests for blocking
3763       // compilations via JVMCI will not actually block until JVMCI is initialized.
3764       init = UseJVMCICompiler && (!UseInterpreter || !BackgroundCompilation);
3765     }
3766 
3767     if (init) {
3768       JVMCIRuntime::force_initialization(CHECK_JNI_ERR);
3769     }
3770   }
3771 #endif
3772 


src/hotspot/share/runtime/thread.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File