61 GenCollectedHeap* GenCollectedHeap::_gch;
62 NOT_PRODUCT(size_t GenCollectedHeap::_skip_header_HeapWords = 0;)
63
64 // The set of potentially parallel tasks in root scanning.
65 enum GCH_strong_roots_tasks {
66 GCH_PS_Universe_oops_do,
67 GCH_PS_JNIHandles_oops_do,
68 GCH_PS_ObjectSynchronizer_oops_do,
69 GCH_PS_FlatProfiler_oops_do,
70 GCH_PS_Management_oops_do,
71 GCH_PS_SystemDictionary_oops_do,
72 GCH_PS_ClassLoaderDataGraph_oops_do,
73 GCH_PS_jvmti_oops_do,
74 GCH_PS_CodeCache_oops_do,
75 GCH_PS_younger_gens,
76 // Leave this one last.
77 GCH_PS_NumElements
78 };
79
80 GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy) :
81 SharedHeap(),
82 _rem_set(NULL),
83 _gen_policy(policy),
84 _process_strong_tasks(new SubTasksDone(GCH_PS_NumElements)),
85 _full_collections_completed(0)
86 {
87 assert(policy != NULL, "Sanity check");
88 if (UseConcMarkSweepGC) {
89 _workers = new FlexibleWorkGang("GC Thread", ParallelGCThreads,
90 /* are_GC_task_threads */true,
91 /* are_ConcurrentGC_threads */false);
92 _workers->initialize_workers();
93 } else {
94 // Serial GC does not use workers.
95 _workers = NULL;
96 }
97 }
98
99 jint GenCollectedHeap::initialize() {
100 CollectedHeap::pre_initialize();
101
|
61 GenCollectedHeap* GenCollectedHeap::_gch;
62 NOT_PRODUCT(size_t GenCollectedHeap::_skip_header_HeapWords = 0;)
63
64 // The set of potentially parallel tasks in root scanning.
65 enum GCH_strong_roots_tasks {
66 GCH_PS_Universe_oops_do,
67 GCH_PS_JNIHandles_oops_do,
68 GCH_PS_ObjectSynchronizer_oops_do,
69 GCH_PS_FlatProfiler_oops_do,
70 GCH_PS_Management_oops_do,
71 GCH_PS_SystemDictionary_oops_do,
72 GCH_PS_ClassLoaderDataGraph_oops_do,
73 GCH_PS_jvmti_oops_do,
74 GCH_PS_CodeCache_oops_do,
75 GCH_PS_younger_gens,
76 // Leave this one last.
77 GCH_PS_NumElements
78 };
79
80 GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy) :
81 CollectedHeap(),
82 _rem_set(NULL),
83 _gen_policy(policy),
84 _process_strong_tasks(new SubTasksDone(GCH_PS_NumElements)),
85 _full_collections_completed(0)
86 {
87 assert(policy != NULL, "Sanity check");
88 if (UseConcMarkSweepGC) {
89 _workers = new FlexibleWorkGang("GC Thread", ParallelGCThreads,
90 /* are_GC_task_threads */true,
91 /* are_ConcurrentGC_threads */false);
92 _workers->initialize_workers();
93 } else {
94 // Serial GC does not use workers.
95 _workers = NULL;
96 }
97 }
98
99 jint GenCollectedHeap::initialize() {
100 CollectedHeap::pre_initialize();
101
|