src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

changeset 1040
98cb887364d3
parent 969
5cfd8d19e546
child 1063
7bb995fbd3c0
equal deleted inserted replaced
1039:ec59443af135 1040:98cb887364d3
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

mercurial