Top


定義場所(file name)

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

説明(description)

// We take a break if someone is trying to stop the world.

名前(function name)

bool ConcurrentMark::do_yield_check(int worker_i) {

本体部(body)

  {- -------------------------------------------
  (1) もし他のスレッドから停止するように要求が来ていれば
      (= ConcurrentMark::should_yield() が true であれば), 
      ConcurrentMarkThread::yield() を呼び出して待機する.

      (なお, 待機処理の前後で G1CollectorPolicy::record_concurrent_pause() と
       G1CollectorPolicy::record_concurrent_pause_end() を呼び出して, 
       トレース出力用の情報の収集も行っている.)
      ---------------------------------------- -}

      if (should_yield()) {
        if (worker_i == 0)
          _g1h->g1_policy()->record_concurrent_pause();
        cmThread()->yield();
        if (worker_i == 0)
          _g1h->g1_policy()->record_concurrent_pause_end();
        return true;
      } else {
        return false;
      }
    }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.