comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 17947:1772223a25a2

8037112: gc/g1/TestHumongousAllocInitialMark.java caused SIGSEGV Reviewed-by: brutisso, mgerdin
author pliden
date Fri, 11 Apr 2014 11:00:12 +0200
parents 78bbf4d43a14
children e4d318eea75a
comparison
equal deleted inserted replaced
17946:997fd9660dd5 17947:1772223a25a2
433 } 433 }
434 434
435 void G1CollectedHeap::stop_conc_gc_threads() { 435 void G1CollectedHeap::stop_conc_gc_threads() {
436 _cg1r->stop(); 436 _cg1r->stop();
437 _cmThread->stop(); 437 _cmThread->stop();
438 if (G1StringDedup::is_enabled()) {
439 G1StringDedup::stop();
440 }
438 } 441 }
439 442
440 #ifdef ASSERT 443 #ifdef ASSERT
441 // A region is added to the collection set as it is retired 444 // A region is added to the collection set as it is retired
442 // so an address p can point to a region which will be in the 445 // so an address p can point to a region which will be in the
2180 G1StringDedup::initialize(); 2183 G1StringDedup::initialize();
2181 2184
2182 return JNI_OK; 2185 return JNI_OK;
2183 } 2186 }
2184 2187
2188 void G1CollectedHeap::stop() {
2189 // Abort any ongoing concurrent root region scanning and stop all
2190 // concurrent threads. We do this to make sure these threads do
2191 // not continue to execute and access resources (e.g. gclog_or_tty)
2192 // that are destroyed during shutdown.
2193 _cm->root_regions()->abort();
2194 _cm->root_regions()->wait_until_scan_finished();
2195 stop_conc_gc_threads();
2196 }
2197
2185 size_t G1CollectedHeap::conservative_max_heap_alignment() { 2198 size_t G1CollectedHeap::conservative_max_heap_alignment() {
2186 return HeapRegion::max_region_size(); 2199 return HeapRegion::max_region_size();
2187 } 2200 }
2188 2201
2189 void G1CollectedHeap::ref_processing_init() { 2202 void G1CollectedHeap::ref_processing_init() {