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 |