Top


定義場所(file name)

hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp

名前(function name)

void ConcurrentG1RefineThread::initialize() {

本体部(body)

  {- -------------------------------------------
  (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.