hotspot/src/share/vm/runtime/vmThread.cpp
void VMThread::create() {
{- -------------------------------------------
(1) VMThread を生成する
---------------------------------------- -}
assert(vm_thread() == NULL, "we can only allocate one VMThread");
_vm_thread = new VMThread();
{- -------------------------------------------
(1) VMThread に VM Operation 要求を通知するための VMOperationQueue を生成する
---------------------------------------- -}
// Create VM operation queue
_vm_queue = new VMOperationQueue();
guarantee(_vm_queue != NULL, "just checking");
{- -------------------------------------------
(1) VMThread の終了を待つための Monitor を生成する
(See: VMThread::wait_for_vm_thread_exit())
---------------------------------------- -}
_terminate_lock = new Monitor(Mutex::safepoint, "VMThread::_terminate_lock", true);
{- -------------------------------------------
(1) (プロファイル情報取得用の初期化処理) ("sun.threads.vmOperationTime") (See: PerfTraceTime)
---------------------------------------- -}
if (UsePerfData) {
// jvmstat performance counters
Thread* THREAD = Thread::current();
_perf_accumulated_vm_operation_time =
PerfDataManager::create_counter(SUN_THREADS, "vmOperationTime",
PerfData::U_Ticks, CHECK);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.