hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
changeset 25728 7f8a76e3baa8
parent 25492 d27050bdfb04
child 25893 b4141bec6a67
equal deleted inserted replaced
25727:7afb6523f5ab 25728:7f8a76e3baa8
   887   clear_all_count_data();
   887   clear_all_count_data();
   888 
   888 
   889   // Repeat the asserts from above.
   889   // Repeat the asserts from above.
   890   guarantee(cmThread()->during_cycle(), "invariant");
   890   guarantee(cmThread()->during_cycle(), "invariant");
   891   guarantee(!g1h->mark_in_progress(), "invariant");
   891   guarantee(!g1h->mark_in_progress(), "invariant");
       
   892 }
       
   893 
       
   894 bool ConcurrentMark::nextMarkBitmapIsClear() {
       
   895   return _nextMarkBitMap->getNextMarkedWordAddress(_heap_start, _heap_end) == _heap_end;
   892 }
   896 }
   893 
   897 
   894 class NoteStartOfMarkHRClosure: public HeapRegionClosure {
   898 class NoteStartOfMarkHRClosure: public HeapRegionClosure {
   895 public:
   899 public:
   896   bool doHeapRegion(HeapRegion* r) {
   900   bool doHeapRegion(HeapRegion* r) {
  3356   }
  3360   }
  3357 }
  3361 }
  3358 
  3362 
  3359 // abandon current marking iteration due to a Full GC
  3363 // abandon current marking iteration due to a Full GC
  3360 void ConcurrentMark::abort() {
  3364 void ConcurrentMark::abort() {
  3361   // Clear all marks to force marking thread to do nothing
  3365   // Clear all marks in the next bitmap for the next marking cycle. This will allow us to skip the next
       
  3366   // concurrent bitmap clearing.
  3362   _nextMarkBitMap->clearAll();
  3367   _nextMarkBitMap->clearAll();
  3363 
  3368 
  3364   // Note we cannot clear the previous marking bitmap here
  3369   // Note we cannot clear the previous marking bitmap here
  3365   // since VerifyDuringGC verifies the objects marked during
  3370   // since VerifyDuringGC verifies the objects marked during
  3366   // a full GC against the previous bitmap.
  3371   // a full GC against the previous bitmap.