hotspot/src/share/vm/runtime/interfaceSupport.hpp
~ThreadInVMfromJava() {
{- -------------------------------------------
(1) ThreadStateTransition::trans() を呼び出して, JavaThreadState を _thread_in_Java に変更する.
(Safepoint 処理が開始されていた場合は, この中でブロックする)
---------------------------------------- -}
trans(_thread_in_vm, _thread_in_Java);
{- -------------------------------------------
(1) JavaThread::has_special_runtime_exit_condition() を呼んで
処理対象のスレッドが例外を出していたりサスペンドされたりしていないかチェックしておく.
もし何か起きていたら, JavaThread::handle_special_runtime_exit_condition() を呼んで対処する.
(なお, ThreadInVMfromJavaNoAsyncException とは異なり,
JavaThread::handle_special_runtime_exit_condition() は, 引数を指定せずに呼び出す.
See: ThreadInVMfromJavaNoAsyncException::~ThreadInVMfromJavaNoAsyncException())
---------------------------------------- -}
// Check for pending. async. exceptions or suspends.
if (_thread->has_special_runtime_exit_condition()) _thread->handle_special_runtime_exit_condition();
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.