551 |
551 |
552 // Create & start a ConcurrentMark thread. |
552 // Create & start a ConcurrentMark thread. |
553 _cmThread = new ConcurrentMarkThread(this); |
553 _cmThread = new ConcurrentMarkThread(this); |
554 assert(cmThread() != NULL, "CM Thread should have been created"); |
554 assert(cmThread() != NULL, "CM Thread should have been created"); |
555 assert(cmThread()->cm() != NULL, "CM Thread should refer to this cm"); |
555 assert(cmThread()->cm() != NULL, "CM Thread should refer to this cm"); |
|
556 if (_cmThread->osthread() == NULL) { |
|
557 vm_shutdown_during_initialization("Could not create ConcurrentMarkThread"); |
|
558 } |
556 |
559 |
557 assert(CGC_lock != NULL, "Where's the CGC_lock?"); |
560 assert(CGC_lock != NULL, "Where's the CGC_lock?"); |
558 assert(_markBitMap1.covers(heap_rs), "_markBitMap1 inconsistency"); |
561 assert(_markBitMap1.covers(heap_rs), "_markBitMap1 inconsistency"); |
559 assert(_markBitMap2.covers(heap_rs), "_markBitMap2 inconsistency"); |
562 assert(_markBitMap2.covers(heap_rs), "_markBitMap2 inconsistency"); |
560 |
563 |