src/hotspot/share/gc/g1/g1RemSet.hpp
changeset 47885 5caa1d5f74c1
parent 47216 71c04702a3d5
child 48889 216c2aabbf1f
equal deleted inserted replaced
47884:3cfab71d6c81 47885:5caa1d5f74c1
   112   void prepare_for_oops_into_collection_set_do();
   112   void prepare_for_oops_into_collection_set_do();
   113   void cleanup_after_oops_into_collection_set_do();
   113   void cleanup_after_oops_into_collection_set_do();
   114 
   114 
   115   G1RemSetScanState* scan_state() const { return _scan_state; }
   115   G1RemSetScanState* scan_state() const { return _scan_state; }
   116 
   116 
   117   // Record, if necessary, the fact that *p (where "p" is in region "from",
       
   118   // which is required to be non-NULL) has changed to a new non-NULL value.
       
   119   template <class T> void par_write_ref(HeapRegion* from, T* p, uint tid);
       
   120 
       
   121   // Eliminates any remembered set entries that correspond to dead heap ranges.
   117   // Eliminates any remembered set entries that correspond to dead heap ranges.
   122   void scrub(uint worker_num, HeapRegionClaimer* hrclaimer);
   118   void scrub(uint worker_num, HeapRegionClaimer* hrclaimer);
   123 
   119 
   124   // Refine the card corresponding to "card_ptr". Safe to be called concurrently
   120   // Refine the card corresponding to "card_ptr". Safe to be called concurrently
   125   // to the mutator.
   121   // to the mutator.
   189   size_t cards_scanned() const { return _cards_scanned; }
   185   size_t cards_scanned() const { return _cards_scanned; }
   190   size_t cards_claimed() const { return _cards_claimed; }
   186   size_t cards_claimed() const { return _cards_claimed; }
   191   size_t cards_skipped() const { return _cards_skipped; }
   187   size_t cards_skipped() const { return _cards_skipped; }
   192 };
   188 };
   193 
   189 
   194 class RebuildRSOopClosure: public ExtendedOopClosure {
       
   195   HeapRegion* _from;
       
   196   G1RemSet* _rs;
       
   197   uint _worker_i;
       
   198 
       
   199   template <class T> void do_oop_work(T* p);
       
   200 
       
   201 public:
       
   202   RebuildRSOopClosure(G1RemSet* rs, uint worker_i = 0) :
       
   203     _from(NULL), _rs(rs), _worker_i(worker_i)
       
   204   {}
       
   205 
       
   206   void set_from(HeapRegion* from) {
       
   207     assert(from != NULL, "from region must be non-NULL");
       
   208     _from = from;
       
   209   }
       
   210 
       
   211   virtual void do_oop(narrowOop* p) { do_oop_work(p); }
       
   212   virtual void do_oop(oop* p)       { do_oop_work(p); }
       
   213 };
       
   214 
       
   215 #endif // SHARE_VM_GC_G1_G1REMSET_HPP
   190 #endif // SHARE_VM_GC_G1_G1REMSET_HPP