Top


定義場所(file name)

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

名前(function name)

  virtual void work(unsigned int i, BoolObjectClosure& is_alive,
                    OopClosure& keep_alive,
                    VoidClosure& complete_gc)
  {

本体部(body)

  {- -------------------------------------------
  (1) 引数で指定された数(以下の i)に対応する DiscoveredList を引数として
      ReferenceProcessor::process_phase3() を呼び出すだけ.

      (なおコメントに, 
       「ReferenceProcessor::balance_queues() によってリストの本数が変わっているので, 
       カレントスレッドの ID (WorkerThread::id()) に対応する DiscoveredList を使う方式ではダメ」と書かれている)
      (<= RefProcPhase1Task::work() は?? #TODO)
      ---------------------------------------- -}

        // Don't use "refs_list_index" calculated in this way because
        // balance_queues() has moved the Ref's into the first n queues.
        // Thread* thr = Thread::current();
        // int refs_list_index = ((WorkerThread*)thr)->id();
        // _ref_processor.process_phase3(_refs_lists[refs_list_index], _clear_referent,
        _ref_processor.process_phase3(_refs_lists[i], _clear_referent,
                                      &is_alive, &keep_alive, &complete_gc);
      }

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