Top


定義場所(file name)

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

名前(function name)

bool PSParallelCompact::initialize() {

本体部(body)

  {- -------------------------------------------
  (1) (変数宣言など)
      ---------------------------------------- -}

      ParallelScavengeHeap* heap = gc_heap();
      assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
      MemRegion mr = heap->reserved_region();

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

      // Was the old gen get allocated successfully?
      if (!heap->old_gen()->is_allocated()) {
        return false;
      }

  {- -------------------------------------------
  (1) PSParallelCompact::initialize_space_info() を呼んで _space_info を初期化する.
      ---------------------------------------- -}

      initialize_space_info();

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

      initialize_dead_wood_limiter();

  {- -------------------------------------------
  (1) ParMarkBitMap::initialize() を呼んで _mark_bitmap を初期化する.
      失敗したら vm_shutdown_during_initialization()
      ---------------------------------------- -}

      if (!_mark_bitmap.initialize(mr)) {
        vm_shutdown_during_initialization("Unable to allocate bit map for "
          "parallel garbage collection for the requested heap size.");
        return false;
      }

  {- -------------------------------------------
  (1) ParallelCompactData::initialize() を呼んで _summary_data を初期化する.
      失敗したら vm_shutdown_during_initialization()
      ---------------------------------------- -}

      if (!_summary_data.initialize(mr)) {
        vm_shutdown_during_initialization("Unable to allocate tables for "
          "parallel garbage collection for the requested heap size.");
        return false;
      }

  {- -------------------------------------------
  (1) リターン
      ---------------------------------------- -}

      return true;
    }

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