< prev index next >

src/hotspot/share/gc/cms/parOopClosures.hpp

Print this page




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
  26 #define SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
  27 
  28 #include "gc/shared/genOopClosures.hpp"
  29 #include "gc/shared/taskqueue.hpp"
  30 #include "memory/padded.hpp"
  31 
  32 // Closures for ParNewGeneration
  33 
  34 class ParScanThreadState;
  35 class ParNewGeneration;
  36 typedef Padded<OopTaskQueue> ObjToScanQueue;
  37 typedef GenericTaskQueueSet<ObjToScanQueue, mtGC> ObjToScanQueueSet;
  38 class ParallelTaskTerminator;
  39 
  40 class ParScanClosure: public OopsInKlassOrGenClosure {
  41  protected:
  42   ParScanThreadState* _par_scan_state;
  43   ParNewGeneration*   _g;
  44   HeapWord*           _boundary;
  45   template <class T> void inline par_do_barrier(T* p);
  46   template <class T> void inline do_oop_work(T* p,
  47                                              bool gc_barrier,
  48                                              bool root_scan);
  49  public:
  50   ParScanClosure(ParNewGeneration* g, ParScanThreadState* par_scan_state);
  51 };
  52 
  53 class ParScanWithBarrierClosure: public ParScanClosure {
  54  public:
  55   ParScanWithBarrierClosure(ParNewGeneration* g,
  56                             ParScanThreadState* par_scan_state) :
  57     ParScanClosure(g, par_scan_state) {}
  58   virtual void do_oop(oop* p);
  59   virtual void do_oop(narrowOop* p);
  60   inline void do_oop_nv(oop* p);




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
  26 #define SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
  27 
  28 #include "gc/shared/genOopClosures.hpp"
  29 #include "gc/shared/taskqueue.hpp"
  30 #include "memory/padded.hpp"
  31 
  32 // Closures for ParNewGeneration
  33 
  34 class ParScanThreadState;
  35 class ParNewGeneration;
  36 typedef Padded<OopTaskQueue> ObjToScanQueue;
  37 typedef GenericTaskQueueSet<ObjToScanQueue, mtGC> ObjToScanQueueSet;
  38 class ParallelTaskTerminator;
  39 
  40 class ParScanClosure: public OopsInClassLoaderDataOrGenClosure {
  41  protected:
  42   ParScanThreadState* _par_scan_state;
  43   ParNewGeneration*   _g;
  44   HeapWord*           _boundary;
  45   template <class T> void inline par_do_barrier(T* p);
  46   template <class T> void inline do_oop_work(T* p,
  47                                              bool gc_barrier,
  48                                              bool root_scan);
  49  public:
  50   ParScanClosure(ParNewGeneration* g, ParScanThreadState* par_scan_state);
  51 };
  52 
  53 class ParScanWithBarrierClosure: public ParScanClosure {
  54  public:
  55   ParScanWithBarrierClosure(ParNewGeneration* g,
  56                             ParScanThreadState* par_scan_state) :
  57     ParScanClosure(g, par_scan_state) {}
  58   virtual void do_oop(oop* p);
  59   virtual void do_oop(narrowOop* p);
  60   inline void do_oop_nv(oop* p);


< prev index next >