src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
changeset 51332 c25572739e7c
parent 51292 0538a5cdb474
child 51405 8b23aa7cef47
equal deleted inserted replaced
51331:7939b3c4e408 51332:c25572739e7c
   623   class G1ClearBitmapHRClosure : public HeapRegionClosure {
   623   class G1ClearBitmapHRClosure : public HeapRegionClosure {
   624   private:
   624   private:
   625     G1CMBitMap* _bitmap;
   625     G1CMBitMap* _bitmap;
   626     G1ConcurrentMark* _cm;
   626     G1ConcurrentMark* _cm;
   627   public:
   627   public:
   628     G1ClearBitmapHRClosure(G1CMBitMap* bitmap, G1ConcurrentMark* cm) : HeapRegionClosure(), _cm(cm), _bitmap(bitmap) {
   628     G1ClearBitmapHRClosure(G1CMBitMap* bitmap, G1ConcurrentMark* cm) : HeapRegionClosure(), _bitmap(bitmap), _cm(cm) {
   629     }
   629     }
   630 
   630 
   631     virtual bool do_heap_region(HeapRegion* r) {
   631     virtual bool do_heap_region(HeapRegion* r) {
   632       size_t const chunk_size_in_words = G1ClearBitMapTask::chunk_size() / HeapWordSize;
   632       size_t const chunk_size_in_words = G1ClearBitMapTask::chunk_size() / HeapWordSize;
   633 
   633 
  1093       hr->note_end_of_marking();
  1093       hr->note_end_of_marking();
  1094     }
  1094     }
  1095 
  1095 
  1096   public:
  1096   public:
  1097     G1UpdateRemSetTrackingBeforeRebuild(G1CollectedHeap* g1h, G1ConcurrentMark* cm, G1PrintRegionLivenessInfoClosure* cl) :
  1097     G1UpdateRemSetTrackingBeforeRebuild(G1CollectedHeap* g1h, G1ConcurrentMark* cm, G1PrintRegionLivenessInfoClosure* cl) :
  1098       _g1h(g1h), _cm(cm), _num_regions_selected_for_rebuild(0), _cl(cl) { }
  1098       _g1h(g1h), _cm(cm), _cl(cl), _num_regions_selected_for_rebuild(0) { }
  1099 
  1099 
  1100     virtual bool do_heap_region(HeapRegion* r) {
  1100     virtual bool do_heap_region(HeapRegion* r) {
  1101       update_remset_before_rebuild(r);
  1101       update_remset_before_rebuild(r);
  1102       update_marked_bytes(r);
  1102       update_marked_bytes(r);
  1103 
  1103 
  1413   uint              _ref_counter_limit;
  1413   uint              _ref_counter_limit;
  1414   uint              _ref_counter;
  1414   uint              _ref_counter;
  1415   bool              _is_serial;
  1415   bool              _is_serial;
  1416 public:
  1416 public:
  1417   G1CMKeepAliveAndDrainClosure(G1ConcurrentMark* cm, G1CMTask* task, bool is_serial) :
  1417   G1CMKeepAliveAndDrainClosure(G1ConcurrentMark* cm, G1CMTask* task, bool is_serial) :
  1418     _cm(cm), _task(task), _is_serial(is_serial),
  1418     _cm(cm), _task(task), _ref_counter_limit(G1RefProcDrainInterval),
  1419     _ref_counter_limit(G1RefProcDrainInterval) {
  1419     _ref_counter(_ref_counter_limit), _is_serial(is_serial) {
  1420     assert(!_is_serial || _task->worker_id() == 0, "only task 0 for serial code");
  1420     assert(!_is_serial || _task->worker_id() == 0, "only task 0 for serial code");
  1421     _ref_counter = _ref_counter_limit;
       
  1422   }
  1421   }
  1423 
  1422 
  1424   virtual void do_oop(narrowOop* p) { do_oop_work(p); }
  1423   virtual void do_oop(narrowOop* p) { do_oop_work(p); }
  1425   virtual void do_oop(      oop* p) { do_oop_work(p); }
  1424   virtual void do_oop(      oop* p) { do_oop_work(p); }
  1426 
  1425