Interpreter (Template Interpreter, C++ Interpreter) の場合, fast-path が失敗すると InterpreterRuntime::monitorenter() による slow-path 処理が実行される.
ただし, 実際には InterpreterRuntime::monitorenter() 内ではほとんど処理は行っておらず, 単に ObjectSynchronizer::fast_enter() または ObjectSynchronizer::slow_enter() にフォールバックするだけ (See: here for details).
InterpreterRuntime::monitorenter()
-> UseBiasedLocking オプションに応じてどちらかを呼び出す
* UseBiasedLocking オプションが指定されている場合:
-> ObjectSynchronizer::fast_enter()
-> (See: here for details)
* 〃 が指定されていない場合:
-> ObjectSynchronizer::slow_enter()
-> (See: here for details)
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.