diff --git a/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp b/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp index 98501decbad..08c31ff6027 100644 --- a/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp +++ b/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp @@ -36,6 +36,7 @@ #include "gc/shared/referenceProcessor.hpp" #include "gc/shared/softRefPolicy.hpp" #include "gc/shared/strongRootsScope.hpp" +#include "gc/shared/workgroup.hpp" #include "logging/log.hpp" #include "memory/metaspace.hpp" #include "utilities/growableArray.hpp" @@ -43,7 +44,6 @@ class AdjoiningGenerations; class GCHeapSummary; -class GCTaskManager; class MemoryManager; class MemoryPool; class PSAdaptiveSizePolicy; @@ -67,9 +67,6 @@ class ParallelScavengeHeap : public CollectedHeap { AdjoiningGenerations* _gens; unsigned int _death_march_count; - // The task manager - static GCTaskManager* _gc_task_manager; - GCMemoryManager* _young_manager; GCMemoryManager* _old_manager; @@ -77,6 +74,8 @@ class ParallelScavengeHeap : public CollectedHeap { MemoryPool* _survivor_pool; MemoryPool* _old_pool; + WorkGang _workers; + virtual void initialize_serviceability(); void trace_heap(GCWhen::Type when, const GCTracer* tracer); @@ -98,7 +97,10 @@ class ParallelScavengeHeap : public CollectedHeap { _old_manager(NULL), _eden_pool(NULL), _survivor_pool(NULL), - _old_pool(NULL) { } + _old_pool(NULL), + _workers("GC Thread", ParallelGCThreads, + true /* are_GC_task_threads */, + false /* are_ConcurrentGC_threads */) { } // For use by VM operations enum CollectionType { @@ -128,8 +130,6 @@ class ParallelScavengeHeap : public CollectedHeap { static ParallelScavengeHeap* heap(); - static GCTaskManager* const gc_task_manager() { return _gc_task_manager; } - CardTableBarrierSet* barrier_set(); PSCardTable* card_table(); @@ -248,6 +248,10 @@ class ParallelScavengeHeap : public CollectedHeap { GCMemoryManager* old_gc_manager() const { return _old_manager; } GCMemoryManager* young_gc_manager() const { return _young_manager; } + + WorkGang& workers() { + return _workers; + } }; // Simple class for storing info about the heap at the start of GC, to be used