Top


定義場所(file name)

hotspot/src/share/vm/compiler/compileBroker.cpp

説明(description)

この関数は, 指定した JIT コンパイル要求が既に出されていないかどうかを確認する.

なおコメントによると, methodOopDesc は1ビットのフラグを持っているだけなので, メソッド全体の JIT コンパイルか OnStackReplace 用のループのコンパイルかの どちらかが動いていれば true になる. このため少し不正確なところがあるので, もしこれが問題になるようなら修正してもいい, とのこと.

// ------------------------------------------------------------------
// CompileBroker::compilation_is_in_queue
//
// See if this compilation is already requested.
//
// Implementation note: there is only a single "is in queue" bit
// for each method.  This means that the check below is overly
// conservative in the sense that an osr compilation in the queue
// will block a normal compilation from entering the queue (and vice
// versa).  This can be remedied by a full queue search to disambiguate
// cases.  If it is deemed profitible, this may be done.

名前(function name)

bool CompileBroker::compilation_is_in_queue(methodHandle method,
                                            int          osr_bci) {

本体部(body)

  {- -------------------------------------------
  (1) methodOopDesc::queued_for_compilation() の結果をリターンするだけ.
      ---------------------------------------- -}

      return method->queued_for_compilation();
    }

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