VM Operation は, 専用のスレッド ("VMThread") によって実行される.
VM Operation処理は, VMThread::execute() メソッドによって VM Operation 要求が VMThread に通知されることで開始される. 処理の流れは以下のようになる.
要求を出される VMThread 自身は, HotSpot の起動時に作成された後, 要求が来るまで無限ループで待機している.
VMThread::execute() が呼び出されると, VMThread::vm_queue という VMOperationQueue に VM Operation 要求が追加される. さらに VMOperationQueuelock に notify() が通知される.
この notify() によって待機していた VMThread が起床し, VMThread::vm_queue から VM Operation オブジェクトを取得し, VMThread::evaluateoperation() で VM Operation を実行する.
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.