< prev index next >

src/hotspot/share/runtime/thread.cpp

Print this page




3707   // Start Attach Listener if +StartAttachListener or it can't be started lazily
3708   if (!DisableAttachMechanism) {
3709     AttachListener::vm_start();
3710     if (StartAttachListener || AttachListener::init_at_startup()) {
3711       AttachListener::init();
3712     }
3713   }
3714 
3715   // Launch -Xrun agents
3716   // Must be done in the JVMTI live phase so that for backward compatibility the JDWP
3717   // back-end can launch with -Xdebug -Xrunjdwp.
3718   if (!EagerXrunInit && Arguments::init_libraries_at_startup()) {
3719     create_vm_init_libraries();
3720   }
3721 
3722   if (CleanChunkPoolAsync) {
3723     Chunk::start_chunk_pool_cleaner_task();
3724   }
3725 
3726   // initialize compiler(s)
3727 #if defined(COMPILER1) || defined(COMPILER2) || INCLUDE_JVMCI
3728   CompileBroker::compilation_init(CHECK_JNI_ERR);
3729 #endif
3730 
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 




3707   // Start Attach Listener if +StartAttachListener or it can't be started lazily
3708   if (!DisableAttachMechanism) {
3709     AttachListener::vm_start();
3710     if (StartAttachListener || AttachListener::init_at_startup()) {
3711       AttachListener::init();
3712     }
3713   }
3714 
3715   // Launch -Xrun agents
3716   // Must be done in the JVMTI live phase so that for backward compatibility the JDWP
3717   // back-end can launch with -Xdebug -Xrunjdwp.
3718   if (!EagerXrunInit && Arguments::init_libraries_at_startup()) {
3719     create_vm_init_libraries();
3720   }
3721 
3722   if (CleanChunkPoolAsync) {
3723     Chunk::start_chunk_pool_cleaner_task();
3724   }
3725 
3726   // initialize compiler(s)
3727 #if defined(COMPILER1) || COMPILER2_OR_JVMCI
3728   CompileBroker::compilation_init(CHECK_JNI_ERR);
3729 #endif
3730 
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 


< prev index next >