Top


定義場所(file name)

hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp

名前(function name)

void PSRefProcTaskExecutor::execute(EnqueueTask& task)
{

本体部(body)

  {- -------------------------------------------
  (1) GCTaskQueue::create() で GCTaskQueue を作り, 
      そこに ParallelGCThreads 個分だけ PSRefEnqueueTaskProxy をつめる.
      ---------------------------------------- -}

      GCTaskQueue* q = GCTaskQueue::create();
      for(uint i=0; i<ParallelGCThreads; i++) {
        q->enqueue(new PSRefEnqueueTaskProxy(task, i));
      }

  {- -------------------------------------------
  (1) GCTaskManager::execute_and_wait() で, GCTaskThread 達に実行させる.
      ---------------------------------------- -}

      ParallelScavengeHeap::gc_task_manager()->execute_and_wait(q);
    }

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