hotspot/src/share/vm/memory/referenceProcessor.cpp
virtual void work(unsigned int i, BoolObjectClosure& is_alive,
OopClosure& keep_alive,
VoidClosure& complete_gc)
{
{- -------------------------------------------
(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.