< prev index next >

src/share/vm/memory/sharedHeap.cpp

Print this page
rev 7525 : [mq]: noremset


  41 SharedHeap* SharedHeap::_sh;
  42 
  43 // The set of potentially parallel tasks in root scanning.
  44 enum SH_process_roots_tasks {
  45   SH_PS_Universe_oops_do,
  46   SH_PS_JNIHandles_oops_do,
  47   SH_PS_ObjectSynchronizer_oops_do,
  48   SH_PS_FlatProfiler_oops_do,
  49   SH_PS_Management_oops_do,
  50   SH_PS_SystemDictionary_oops_do,
  51   SH_PS_ClassLoaderDataGraph_oops_do,
  52   SH_PS_jvmti_oops_do,
  53   SH_PS_CodeCache_oops_do,
  54   // Leave this one last.
  55   SH_PS_NumElements
  56 };
  57 
  58 SharedHeap::SharedHeap(CollectorPolicy* policy_) :
  59   CollectedHeap(),
  60   _collector_policy(policy_),
  61   _rem_set(NULL),
  62   _strong_roots_scope(NULL),
  63   _strong_roots_parity(0),
  64   _process_strong_tasks(new SubTasksDone(SH_PS_NumElements)),
  65   _workers(NULL)
  66 {
  67   if (_process_strong_tasks == NULL || !_process_strong_tasks->valid()) {
  68     vm_exit_during_initialization("Failed necessary allocation.");
  69   }
  70   _sh = this;  // ch is static, should be set only once.
  71   if (UseConcMarkSweepGC || UseG1GC) {
  72     _workers = new FlexibleWorkGang("Parallel GC Threads", ParallelGCThreads,
  73                             /* are_GC_task_threads */true,
  74                             /* are_ConcurrentGC_threads */false);
  75     if (_workers == NULL) {
  76       vm_exit_during_initialization("Failed necessary allocation.");
  77     } else {
  78       _workers->initialize_workers();
  79     }
  80   }
  81 }




  41 SharedHeap* SharedHeap::_sh;
  42 
  43 // The set of potentially parallel tasks in root scanning.
  44 enum SH_process_roots_tasks {
  45   SH_PS_Universe_oops_do,
  46   SH_PS_JNIHandles_oops_do,
  47   SH_PS_ObjectSynchronizer_oops_do,
  48   SH_PS_FlatProfiler_oops_do,
  49   SH_PS_Management_oops_do,
  50   SH_PS_SystemDictionary_oops_do,
  51   SH_PS_ClassLoaderDataGraph_oops_do,
  52   SH_PS_jvmti_oops_do,
  53   SH_PS_CodeCache_oops_do,
  54   // Leave this one last.
  55   SH_PS_NumElements
  56 };
  57 
  58 SharedHeap::SharedHeap(CollectorPolicy* policy_) :
  59   CollectedHeap(),
  60   _collector_policy(policy_),

  61   _strong_roots_scope(NULL),
  62   _strong_roots_parity(0),
  63   _process_strong_tasks(new SubTasksDone(SH_PS_NumElements)),
  64   _workers(NULL)
  65 {
  66   if (_process_strong_tasks == NULL || !_process_strong_tasks->valid()) {
  67     vm_exit_during_initialization("Failed necessary allocation.");
  68   }
  69   _sh = this;  // ch is static, should be set only once.
  70   if (UseConcMarkSweepGC || UseG1GC) {
  71     _workers = new FlexibleWorkGang("Parallel GC Threads", ParallelGCThreads,
  72                             /* are_GC_task_threads */true,
  73                             /* are_ConcurrentGC_threads */false);
  74     if (_workers == NULL) {
  75       vm_exit_during_initialization("Failed necessary allocation.");
  76     } else {
  77       _workers->initialize_workers();
  78     }
  79   }
  80 }


< prev index next >