< prev index next >

src/hotspot/share/gc/cms/cmsHeap.cpp

Print this page
rev 48000 : [mq]: open.patch
rev 48001 : [mq]: 8191564-diff.patch

@@ -63,13 +63,10 @@
   }
 };
 
 CMSHeap::CMSHeap(GenCollectorPolicy *policy) :
   GenCollectedHeap(policy), _eden_pool(NULL), _survivor_pool(NULL), _old_pool(NULL) {
-  _young_manager = new GCMemoryManager("ParNew", "end of minor GC");
-  _old_manager = new GCMemoryManager("ConcurrentMarkSweep", "end of major GC");
-
   _workers = new WorkGang("GC Thread", ParallelGCThreads,
                           /* are_GC_task_threads */true,
                           /* are_ConcurrentGC_threads */false);
   _workers->initialize_workers();
 }

@@ -83,10 +80,17 @@
   assert(collector_policy()->is_concurrent_mark_sweep_policy(), "must be CMS policy");
   if (!create_cms_collector()) {
     return JNI_ENOMEM;
   }
 
+  return JNI_OK;
+}
+
+void CMSHeap::initialize_serviceability() {
+  _young_manager = new GCMemoryManager("ParNew", "end of minor GC");
+  _old_manager = new GCMemoryManager("ConcurrentMarkSweep", "end of major GC");
+
   ParNewGeneration* young = (ParNewGeneration*) young_gen();
   _eden_pool = new ContiguousSpacePool(young->eden(),
                                        "Par Eden Space",
                                        young->max_eden_size(),
                                        false);

@@ -109,11 +113,10 @@
   _old_manager->add_pool(_eden_pool);
   _old_manager->add_pool(_survivor_pool);
   _old_manager->add_pool(_old_pool);
   old ->set_gc_manager(_old_manager);
 
-  return JNI_OK;
 }
 
 void CMSHeap::check_gen_kinds() {
   assert(young_gen()->kind() == Generation::ParNew,
          "Wrong youngest generation type");
< prev index next >