src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
changeset 55498 e64383344f14
parent 55338 755e82641224
child 57663 bf8e76d86d05
equal deleted inserted replaced
55497:d3a33953b936 55498:e64383344f14
  2417   while (!has_aborted() &&
  2417   while (!has_aborted() &&
  2418          satb_mq_set.apply_closure_to_completed_buffer(&satb_cl)) {
  2418          satb_mq_set.apply_closure_to_completed_buffer(&satb_cl)) {
  2419     abort_marking_if_regular_check_fail();
  2419     abort_marking_if_regular_check_fail();
  2420   }
  2420   }
  2421 
  2421 
       
  2422   // Can't assert qset is empty here, even if not aborted.  If concurrent,
       
  2423   // some other thread might be adding to the queue.  If not concurrent,
       
  2424   // some other thread might have won the race for the last buffer, but
       
  2425   // has not yet decremented the count.
       
  2426 
  2422   _draining_satb_buffers = false;
  2427   _draining_satb_buffers = false;
  2423 
       
  2424   assert(has_aborted() ||
       
  2425          _cm->concurrent() ||
       
  2426          satb_mq_set.completed_buffers_num() == 0, "invariant");
       
  2427 
  2428 
  2428   // again, this was a potentially expensive operation, decrease the
  2429   // again, this was a potentially expensive operation, decrease the
  2429   // limits to get the regular clock call early
  2430   // limits to get the regular clock call early
  2430   decrease_limits();
  2431   decrease_limits();
  2431 }
  2432 }