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 |