comparison src/share/vm/gc_implementation/g1/concurrentMark.cpp @ 1022:4c3458a31e17

6888316: G1: has_aborted() || _cm->region_stack_empty() fails Summary: Remove incorrect guarantee. Reviewed-by: apetrusenko, iveresov
author tonyp
date Wed, 07 Oct 2009 09:42:18 -0400
parents 035d2e036a9b
children 11d4857fe5e1
comparison
equal deleted inserted replaced
1021:1f19207eefc2 1022:4c3458a31e17
3413 // break from while 3413 // break from while
3414 mr = MemRegion(); 3414 mr = MemRegion();
3415 } 3415 }
3416 _region_finger = NULL; 3416 _region_finger = NULL;
3417 } 3417 }
3418
3419 // We only push regions on the region stack during evacuation
3420 // pauses. So if we come out the above iteration because we region
3421 // stack is empty, it will remain empty until the next yield
3422 // point. So, the guarantee below is safe.
3423 guarantee( has_aborted() || _cm->region_stack_empty(),
3424 "only way to exit the loop" );
3425 3418
3426 if (_cm->verbose_low()) 3419 if (_cm->verbose_low())
3427 gclog_or_tty->print_cr("[%d] drained region stack, size = %d", 3420 gclog_or_tty->print_cr("[%d] drained region stack, size = %d",
3428 _task_id, _cm->region_stack_size()); 3421 _task_id, _cm->region_stack_size());
3429 } 3422 }