Top


定義場所(file name)

hotspot/src/share/vm/memory/referenceProcessor.hpp

説明(description)

  // Phase2: remove all those references whose referents are
  // reachable.

名前(function name)

  inline void process_phase2(DiscoveredList&    refs_list,
                             BoolObjectClosure* is_alive,
                             OopClosure*        keep_alive,
                             VoidClosure*       complete_gc) {

本体部(body)

  {- -------------------------------------------
  (1) ReferenceProcessor::pp2_work() または ReferenceProcessor::pp2_work_concurrent_discovery() を呼び出すだけ.
      (discovery 処理がアトミックに行われていれば (= CMS や G1GC のように並行して動いている GC スレッドがいなければ), 
       ReferenceProcessor::pp2_work() を呼び出す.
       そうでなければ ReferenceProcessor::pp2_work_concurrent_discovery() を呼び出す.
       See: ReferenceProcessor::_discovery_is_atomic)
      ---------------------------------------- -}

        if (discovery_is_atomic()) {
          // complete_gc is ignored in this case for this phase
          pp2_work(refs_list, is_alive, keep_alive);
        } else {
          assert(complete_gc != NULL, "Error");
          pp2_work_concurrent_discovery(refs_list, is_alive,
                                        keep_alive, complete_gc);
        }
      }

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