3679 } 3680 3681 // Launch -Xrun agents 3682 // Must be done in the JVMTI live phase so that for backward compatibility the JDWP 3683 // back-end can launch with -Xdebug -Xrunjdwp. 3684 if (!EagerXrunInit && Arguments::init_libraries_at_startup()) { 3685 create_vm_init_libraries(); 3686 } 3687 3688 // Notify JVMTI agents that VM initialization is complete - nop if no agents. 3689 JvmtiExport::post_vm_initialized(); 3690 3691 if (TRACE_START() != JNI_OK) { 3692 vm_exit_during_initialization("Failed to start tracing backend."); 3693 } 3694 3695 if (CleanChunkPoolAsync) { 3696 Chunk::start_chunk_pool_cleaner_task(); 3697 } 3698 3699 #if INCLUDE_JVMCI 3700 if (EnableJVMCI) { 3701 const char* jvmciCompiler = Arguments::PropertyList_get_value(Arguments::system_properties(), "jvmci.compiler"); 3702 if (jvmciCompiler != NULL) { 3703 JVMCIRuntime::save_compiler(jvmciCompiler); 3704 } 3705 } 3706 #endif // INCLUDE_JVMCI 3707 3708 // initialize compiler(s) 3709 #if defined(COMPILER1) || defined(COMPILER2) || defined(SHARK) || INCLUDE_JVMCI 3710 CompileBroker::compilation_init(CHECK_JNI_ERR); 3711 #endif 3712 3713 // Pre-initialize some JSR292 core classes to avoid deadlock during class loading. 3714 // It is done after compilers are initialized, because otherwise compilations of 3715 // signature polymorphic MH intrinsics can be missed 3716 // (see SystemDictionary::find_method_handle_intrinsic). 3717 initialize_jsr292_core_classes(CHECK_JNI_ERR); 3718 3719 #if INCLUDE_MANAGEMENT 3720 Management::initialize(THREAD); 3721 3722 if (HAS_PENDING_EXCEPTION) { 3723 // management agent fails to start possibly due to 3724 // configuration problem and is responsible for printing 3725 // stack trace if appropriate. Simply exit VM. 3726 vm_exit(1); 3727 } | 3679 } 3680 3681 // Launch -Xrun agents 3682 // Must be done in the JVMTI live phase so that for backward compatibility the JDWP 3683 // back-end can launch with -Xdebug -Xrunjdwp. 3684 if (!EagerXrunInit && Arguments::init_libraries_at_startup()) { 3685 create_vm_init_libraries(); 3686 } 3687 3688 // Notify JVMTI agents that VM initialization is complete - nop if no agents. 3689 JvmtiExport::post_vm_initialized(); 3690 3691 if (TRACE_START() != JNI_OK) { 3692 vm_exit_during_initialization("Failed to start tracing backend."); 3693 } 3694 3695 if (CleanChunkPoolAsync) { 3696 Chunk::start_chunk_pool_cleaner_task(); 3697 } 3698 3699 // initialize compiler(s) 3700 #if defined(COMPILER1) || defined(COMPILER2) || defined(SHARK) || INCLUDE_JVMCI 3701 CompileBroker::compilation_init(CHECK_JNI_ERR); 3702 #endif 3703 3704 // Pre-initialize some JSR292 core classes to avoid deadlock during class loading. 3705 // It is done after compilers are initialized, because otherwise compilations of 3706 // signature polymorphic MH intrinsics can be missed 3707 // (see SystemDictionary::find_method_handle_intrinsic). 3708 initialize_jsr292_core_classes(CHECK_JNI_ERR); 3709 3710 #if INCLUDE_MANAGEMENT 3711 Management::initialize(THREAD); 3712 3713 if (HAS_PENDING_EXCEPTION) { 3714 // management agent fails to start possibly due to 3715 // configuration problem and is responsible for printing 3716 // stack trace if appropriate. Simply exit VM. 3717 vm_exit(1); 3718 } |