Mercurial > hg > graal-compiler
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() { |