src/hotspot/share/gc/cms/cmsHeap.hpp
changeset 48168 cb5d2d4453d0
parent 47819 ee36a8e36561
child 48961 120b61d50f85
equal deleted inserted replaced
48167:f04a848c6f00 48168:cb5d2d4453d0
    27 
    27 
    28 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
    28 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
    29 #include "gc/shared/collectedHeap.hpp"
    29 #include "gc/shared/collectedHeap.hpp"
    30 #include "gc/shared/gcCause.hpp"
    30 #include "gc/shared/gcCause.hpp"
    31 #include "gc/shared/genCollectedHeap.hpp"
    31 #include "gc/shared/genCollectedHeap.hpp"
       
    32 #include "utilities/growableArray.hpp"
    32 
    33 
    33 class CLDClosure;
    34 class CLDClosure;
    34 class GenCollectorPolicy;
    35 class GenCollectorPolicy;
       
    36 class GCMemoryManager;
       
    37 class MemoryPool;
    35 class OopsInGenClosure;
    38 class OopsInGenClosure;
    36 class outputStream;
    39 class outputStream;
    37 class StrongRootsScope;
    40 class StrongRootsScope;
    38 class ThreadClosure;
    41 class ThreadClosure;
    39 class WorkGang;
    42 class WorkGang;
    78 
    81 
    79   void stop();
    82   void stop();
    80   void safepoint_synchronize_begin();
    83   void safepoint_synchronize_begin();
    81   void safepoint_synchronize_end();
    84   void safepoint_synchronize_end();
    82 
    85 
       
    86   virtual GrowableArray<GCMemoryManager*> memory_managers();
       
    87   virtual GrowableArray<MemoryPool*> memory_pools();
       
    88 
    83   // If "young_gen_as_roots" is false, younger generations are
    89   // If "young_gen_as_roots" is false, younger generations are
    84   // not scanned as roots; in this case, the caller must be arranging to
    90   // not scanned as roots; in this case, the caller must be arranging to
    85   // scan the younger generations itself.  (For example, a generation might
    91   // scan the younger generations itself.  (For example, a generation might
    86   // explicitly mark reachable objects in younger generations, to avoid
    92   // explicitly mark reachable objects in younger generations, to avoid
    87   // excess storage retention.)
    93   // excess storage retention.)
    90                          ScanningOption so,
    96                          ScanningOption so,
    91                          bool only_strong_roots,
    97                          bool only_strong_roots,
    92                          OopsInGenClosure* root_closure,
    98                          OopsInGenClosure* root_closure,
    93                          CLDClosure* cld_closure);
    99                          CLDClosure* cld_closure);
    94 
   100 
       
   101   GCMemoryManager* old_manager() const { return _old_manager; }
       
   102 
    95 private:
   103 private:
    96   WorkGang* _workers;
   104   WorkGang* _workers;
       
   105   MemoryPool* _eden_pool;
       
   106   MemoryPool* _survivor_pool;
       
   107   MemoryPool* _old_pool;
    97 
   108 
    98   virtual void gc_prologue(bool full);
   109   virtual void gc_prologue(bool full);
    99   virtual void gc_epilogue(bool full);
   110   virtual void gc_epilogue(bool full);
       
   111 
       
   112   virtual void initialize_serviceability();
   100 
   113 
   101   // Accessor for memory state verification support
   114   // Accessor for memory state verification support
   102   NOT_PRODUCT(
   115   NOT_PRODUCT(
   103     virtual size_t skip_header_HeapWords() { return CMSCollector::skip_header_HeapWords(); }
   116     virtual size_t skip_header_HeapWords() { return CMSCollector::skip_header_HeapWords(); }
   104   )
   117   )