Top


定義場所(file name)

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

名前(function name)

void GenCollectedHeap::collect_mostly_concurrent(GCCause::Cause cause) {

本体部(body)

  {- -------------------------------------------
  (1) (assert)
      ---------------------------------------- -}

      assert(!Heap_lock->owned_by_self(), "Should not own Heap_lock");

  {- -------------------------------------------
  (1) (変数宣言など)
      (なお, これらの値は Heap_lock のロックを取った状態で読み取る)
      ---------------------------------------- -}

      MutexLocker ml(Heap_lock);
      // Read the GC counts while holding the Heap_lock
      unsigned int full_gc_count_before = total_full_collections();
      unsigned int gc_count_before      = total_collections();

  {- -------------------------------------------
  (1) VM_GenCollectFullConcurrent による GC を行う.
      ---------------------------------------- -}

      {
        MutexUnlocker mu(Heap_lock);
        VM_GenCollectFullConcurrent op(gc_count_before, full_gc_count_before, cause);
        VMThread::execute(&op);
      }
    }

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