< prev index next >

src/share/vm/runtime/thread.cpp

Print this page




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();


< prev index next >