hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
changeset 2154 72a9b7284ccf
parent 2105 347008ce7984
parent 2131 98f9cef66a34
child 2346 3aa355016e90
equal deleted inserted replaced
2106:ec595a5e793e 2154:72a9b7284ccf
  4176     // yet implemented the right abort semantics (even in the original
  4176     // yet implemented the right abort semantics (even in the original
  4177     // single-threaded CMS case). That needs some more investigation
  4177     // single-threaded CMS case). That needs some more investigation
  4178     // and is deferred for now; see CR# TBF. 07252005YSR. XXX
  4178     // and is deferred for now; see CR# TBF. 07252005YSR. XXX
  4179     assert(!CMSAbortSemantics || tsk.aborted(), "Inconsistency");
  4179     assert(!CMSAbortSemantics || tsk.aborted(), "Inconsistency");
  4180     // If _restart_addr is non-NULL, a marking stack overflow
  4180     // If _restart_addr is non-NULL, a marking stack overflow
  4181     // occured; we need to do a fresh marking iteration from the
  4181     // occurred; we need to do a fresh marking iteration from the
  4182     // indicated restart address.
  4182     // indicated restart address.
  4183     if (_foregroundGCIsActive && asynch) {
  4183     if (_foregroundGCIsActive && asynch) {
  4184       // We may be running into repeated stack overflows, having
  4184       // We may be running into repeated stack overflows, having
  4185       // reached the limit of the stack size, while making very
  4185       // reached the limit of the stack size, while making very
  4186       // slow forward progress. It may be best to bail out and
  4186       // slow forward progress. It may be best to bail out and
  4219     &_markStack, &_revisitStack, CMSYield && asynch);
  4219     &_markStack, &_revisitStack, CMSYield && asynch);
  4220   // the last argument to iterate indicates whether the iteration
  4220   // the last argument to iterate indicates whether the iteration
  4221   // should be incremental with periodic yields.
  4221   // should be incremental with periodic yields.
  4222   _markBitMap.iterate(&markFromRootsClosure);
  4222   _markBitMap.iterate(&markFromRootsClosure);
  4223   // If _restart_addr is non-NULL, a marking stack overflow
  4223   // If _restart_addr is non-NULL, a marking stack overflow
  4224   // occured; we need to do a fresh iteration from the
  4224   // occurred; we need to do a fresh iteration from the
  4225   // indicated restart address.
  4225   // indicated restart address.
  4226   while (_restart_addr != NULL) {
  4226   while (_restart_addr != NULL) {
  4227     if (_foregroundGCIsActive && asynch) {
  4227     if (_foregroundGCIsActive && asynch) {
  4228       // We may be running into repeated stack overflows, having
  4228       // We may be running into repeated stack overflows, having
  4229       // reached the limit of the stack size, while making very
  4229       // reached the limit of the stack size, while making very