< prev index next >

src/share/vm/gc/g1/g1RootClosures.hpp

Print this page
rev 9081 : imported patch rootclosureset
rev 9083 : imported patch erik-review
rev 9084 : [mq]: stefank-comments
rev 9085 : imported patch stefank-patch2
rev 9086 : imported patch trace-metadata
rev 9087 : imported patch parpush


  50 
  51 class G1EvacuationRootClosures : public G1RootClosures {
  52 public:
  53   // Flush any buffered state and deferred processing
  54   virtual void flush() = 0;
  55   virtual double closure_app_seconds() = 0;
  56 
  57   // Applied to the weakly reachable CLDs when all strongly reachable
  58   // CLDs are guaranteed to have been processed.
  59   virtual CLDClosure* second_pass_weak_clds() = 0;
  60 
  61   // Get a raw oop closure for processing oops, bypassing the flushing above.
  62   virtual OopClosure* raw_strong_oops() = 0;
  63 
  64   // Applied to code blobs treated as weak roots.
  65   virtual CodeBlobClosure* weak_codeblobs() = 0;
  66 
  67   // Is this closure used for tracing metadata?
  68   virtual bool trace_metadata() = 0;
  69 



  70   static G1EvacuationRootClosures* create_root_closures(G1ParScanThreadState* pss, G1CollectedHeap* g1h);
  71 };
  72 
  73 #endif // SHARE_VM_GC_G1_G1ROOTCLOSURESET_HPP


  50 
  51 class G1EvacuationRootClosures : public G1RootClosures {
  52 public:
  53   // Flush any buffered state and deferred processing
  54   virtual void flush() = 0;
  55   virtual double closure_app_seconds() = 0;
  56 
  57   // Applied to the weakly reachable CLDs when all strongly reachable
  58   // CLDs are guaranteed to have been processed.
  59   virtual CLDClosure* second_pass_weak_clds() = 0;
  60 
  61   // Get a raw oop closure for processing oops, bypassing the flushing above.
  62   virtual OopClosure* raw_strong_oops() = 0;
  63 
  64   // Applied to code blobs treated as weak roots.
  65   virtual CodeBlobClosure* weak_codeblobs() = 0;
  66 
  67   // Is this closure used for tracing metadata?
  68   virtual bool trace_metadata() = 0;
  69 
  70   // Applied to inter-region pointers, statically typed due to devirtualization.
  71   virtual G1ParPushHeapRSClosure* inter_region_oops() = 0;
  72 
  73   static G1EvacuationRootClosures* create_root_closures(G1ParScanThreadState* pss, G1CollectedHeap* g1h);
  74 };
  75 
  76 #endif // SHARE_VM_GC_G1_G1ROOTCLOSURESET_HPP
< prev index next >