hotspot/src/share/vm/runtime/thread.cpp
changeset 37161 e881f320966e
parent 37129 af29e306e50b
child 37179 4dbcb3a642d2
equal deleted inserted replaced
37157:2a0fdb3e2a19 37161:e881f320966e
    66 #include "runtime/init.hpp"
    66 #include "runtime/init.hpp"
    67 #include "runtime/interfaceSupport.hpp"
    67 #include "runtime/interfaceSupport.hpp"
    68 #include "runtime/java.hpp"
    68 #include "runtime/java.hpp"
    69 #include "runtime/javaCalls.hpp"
    69 #include "runtime/javaCalls.hpp"
    70 #include "runtime/jniPeriodicChecker.hpp"
    70 #include "runtime/jniPeriodicChecker.hpp"
    71 #include "runtime/logTimer.hpp"
    71 #include "runtime/timerTrace.hpp"
    72 #include "runtime/memprofiler.hpp"
    72 #include "runtime/memprofiler.hpp"
    73 #include "runtime/mutexLocker.hpp"
    73 #include "runtime/mutexLocker.hpp"
    74 #include "runtime/objectMonitor.hpp"
    74 #include "runtime/objectMonitor.hpp"
    75 #include "runtime/orderAccess.inline.hpp"
    75 #include "runtime/orderAccess.inline.hpp"
    76 #include "runtime/osThread.hpp"
    76 #include "runtime/osThread.hpp"
  3364 
  3364 
  3365   // If CompilerThreads ever become non-JavaThreads, add them here
  3365   // If CompilerThreads ever become non-JavaThreads, add them here
  3366 }
  3366 }
  3367 
  3367 
  3368 void Threads::initialize_java_lang_classes(JavaThread* main_thread, TRAPS) {
  3368 void Threads::initialize_java_lang_classes(JavaThread* main_thread, TRAPS) {
  3369   TraceStartupTime timer("Initialize java.lang classes");
  3369   TraceTime timer("Initialize java.lang classes", TRACETIME_LOG(Info, startuptime));
  3370 
  3370 
  3371   if (EagerXrunInit && Arguments::init_libraries_at_startup()) {
  3371   if (EagerXrunInit && Arguments::init_libraries_at_startup()) {
  3372     create_vm_init_libraries();
  3372     create_vm_init_libraries();
  3373   }
  3373   }
  3374 
  3374 
  3411   initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK);
  3411   initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK);
  3412   initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK);
  3412   initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK);
  3413 }
  3413 }
  3414 
  3414 
  3415 void Threads::initialize_jsr292_core_classes(TRAPS) {
  3415 void Threads::initialize_jsr292_core_classes(TRAPS) {
  3416   TraceStartupTime timer("Initialize java.lang.invoke classes");
  3416   TraceTime timer("Initialize java.lang.invoke classes", TRACETIME_LOG(Info, startuptime));
  3417 
  3417 
  3418   initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK);
  3418   initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK);
  3419   initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK);
  3419   initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK);
  3420   initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK);
  3420   initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK);
  3421 }
  3421 }
  3482   }
  3482   }
  3483 
  3483 
  3484   HOTSPOT_VM_INIT_BEGIN();
  3484   HOTSPOT_VM_INIT_BEGIN();
  3485 
  3485 
  3486   // Timing (must come after argument parsing)
  3486   // Timing (must come after argument parsing)
  3487   TraceStartupTime timer("Create VM");
  3487   TraceTime timer("Create VM", TRACETIME_LOG(Info, startuptime));
  3488 
  3488 
  3489   // Initialize the os module after parsing the args
  3489   // Initialize the os module after parsing the args
  3490   jint os_init_2_result = os::init_2();
  3490   jint os_init_2_result = os::init_2();
  3491   if (os_init_2_result != JNI_OK) return os_init_2_result;
  3491   if (os_init_2_result != JNI_OK) return os_init_2_result;
  3492 
  3492 
  3571   // Any JVMTI raw monitors entered in onload will transition into
  3571   // Any JVMTI raw monitors entered in onload will transition into
  3572   // real raw monitor. VM is setup enough here for raw monitor enter.
  3572   // real raw monitor. VM is setup enough here for raw monitor enter.
  3573   JvmtiExport::transition_pending_onload_raw_monitors();
  3573   JvmtiExport::transition_pending_onload_raw_monitors();
  3574 
  3574 
  3575   // Create the VMThread
  3575   // Create the VMThread
  3576   { TraceStartupTime timer("Start VMThread");
  3576   { TraceTime timer("Start VMThread", TRACETIME_LOG(Info, startuptime));
  3577 
  3577 
  3578   VMThread::create();
  3578   VMThread::create();
  3579     Thread* vmthread = VMThread::vm_thread();
  3579     Thread* vmthread = VMThread::vm_thread();
  3580 
  3580 
  3581     if (!os::create_thread(vmthread, os::vm_thread)) {
  3581     if (!os::create_thread(vmthread, os::vm_thread)) {