hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp
void ConcurrentG1RefineThread::initialize() {
{- -------------------------------------------
(1) フィールドの初期化
(なお, _worker_id が ConcurrentG1Refine::worker_thread_num() 以上の場合は
set_active() を呼ぶだけ.
ただしこの場合は, この後に呼ばれる ConcurrentG1RefineThread::run() 内では
card の処理ではなく統計情報の記録処理を行うことになるため,
_threshold フィールドや _deactivation_threshold フィールドを初期化しなくても問題ない模様(? #TODO))
---------------------------------------- -}
if (_worker_id < cg1r()->worker_thread_num()) {
// Current thread activation threshold
_threshold = MIN2<int>(cg1r()->thread_threshold_step() * (_worker_id + 1) + cg1r()->green_zone(),
cg1r()->yellow_zone());
// A thread deactivates once the number of buffer reached a deactivation threshold
_deactivation_threshold = MAX2<int>(_threshold - cg1r()->thread_threshold_step(), cg1r()->green_zone());
} else {
set_active(true);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.