3660 initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK_0); 3661 initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK_0); 3662 } 3663 3664 #if INCLUDE_MANAGEMENT 3665 Management::initialize(THREAD); 3666 #endif // INCLUDE_MANAGEMENT 3667 3668 if (HAS_PENDING_EXCEPTION) { 3669 // management agent fails to start possibly due to 3670 // configuration problem and is responsible for printing 3671 // stack trace if appropriate. Simply exit VM. 3672 vm_exit(1); 3673 } 3674 3675 if (Arguments::has_profile()) FlatProfiler::engage(main_thread, true); 3676 if (MemProfiling) MemProfiler::engage(); 3677 StatSampler::engage(); 3678 if (CheckJNICalls) JniPeriodicChecker::engage(); 3679 3680 BiasedLocking::init(); 3681 3682 #if INCLUDE_RTM_OPT 3683 RTMLockingCounters::init(); 3684 #endif 3685 3686 if (JDK_Version::current().post_vm_init_hook_enabled()) { 3687 call_postVMInitHook(THREAD); 3688 // The Java side of PostVMInitHook.run must deal with all 3689 // exceptions and provide means of diagnosis. 3690 if (HAS_PENDING_EXCEPTION) { 3691 CLEAR_PENDING_EXCEPTION; 3692 } 3693 } 3694 3695 { 3696 MutexLockerEx ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); 3697 // Make sure the watcher thread can be started by WatcherThread::start() 3698 // or by dynamic enrollment. 3699 WatcherThread::make_startable(); | 3660 initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK_0); 3661 initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK_0); 3662 } 3663 3664 #if INCLUDE_MANAGEMENT 3665 Management::initialize(THREAD); 3666 #endif // INCLUDE_MANAGEMENT 3667 3668 if (HAS_PENDING_EXCEPTION) { 3669 // management agent fails to start possibly due to 3670 // configuration problem and is responsible for printing 3671 // stack trace if appropriate. Simply exit VM. 3672 vm_exit(1); 3673 } 3674 3675 if (Arguments::has_profile()) FlatProfiler::engage(main_thread, true); 3676 if (MemProfiling) MemProfiler::engage(); 3677 StatSampler::engage(); 3678 if (CheckJNICalls) JniPeriodicChecker::engage(); 3679 3680 if (AsyncGCLogging && Arguments::gc_log_filename() != NULL) { 3681 PeriodicTask* task = new GCLogFlusher(GCLogFlushInterval, static_cast<gcLogFileStream* >(gclog_or_tty)); 3682 task->enroll(); 3683 } 3684 3685 BiasedLocking::init(); 3686 3687 #if INCLUDE_RTM_OPT 3688 RTMLockingCounters::init(); 3689 #endif 3690 3691 if (JDK_Version::current().post_vm_init_hook_enabled()) { 3692 call_postVMInitHook(THREAD); 3693 // The Java side of PostVMInitHook.run must deal with all 3694 // exceptions and provide means of diagnosis. 3695 if (HAS_PENDING_EXCEPTION) { 3696 CLEAR_PENDING_EXCEPTION; 3697 } 3698 } 3699 3700 { 3701 MutexLockerEx ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag); 3702 // Make sure the watcher thread can be started by WatcherThread::start() 3703 // or by dynamic enrollment. 3704 WatcherThread::make_startable(); |