mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-12 06:29:37 +00:00
8029326: G1 does not check if threads gets created
Reviewed-by: brutisso, jmasa, jwilhelm
This commit is contained in:
parent
5ece6fc7fd
commit
5d5b1157d1
@ -27,6 +27,7 @@
|
||||
#include "gc_implementation/g1/concurrentG1RefineThread.hpp"
|
||||
#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
|
||||
#include "gc_implementation/g1/g1HotCardCache.hpp"
|
||||
#include "runtime/java.hpp"
|
||||
|
||||
ConcurrentG1Refine::ConcurrentG1Refine(G1CollectedHeap* g1h) :
|
||||
_threads(NULL), _n_threads(0),
|
||||
@ -62,6 +63,10 @@ ConcurrentG1Refine::ConcurrentG1Refine(G1CollectedHeap* g1h) :
|
||||
for (int i = _n_threads - 1; i >= 0; i--) {
|
||||
ConcurrentG1RefineThread* t = new ConcurrentG1RefineThread(this, next, worker_id_offset, i);
|
||||
assert(t != NULL, "Conc refine should have been created");
|
||||
if (t->osthread() == NULL) {
|
||||
vm_shutdown_during_initialization("Could not create ConcurrentG1RefineThread");
|
||||
}
|
||||
|
||||
assert(t->cg1r() == this, "Conc refine thread should refer to this");
|
||||
_threads[i] = t;
|
||||
next = t;
|
||||
|
||||
@ -553,6 +553,9 @@ ConcurrentMark::ConcurrentMark(G1CollectedHeap* g1h, ReservedSpace heap_rs) :
|
||||
_cmThread = new ConcurrentMarkThread(this);
|
||||
assert(cmThread() != NULL, "CM Thread should have been created");
|
||||
assert(cmThread()->cm() != NULL, "CM Thread should refer to this cm");
|
||||
if (_cmThread->osthread() == NULL) {
|
||||
vm_shutdown_during_initialization("Could not create ConcurrentMarkThread");
|
||||
}
|
||||
|
||||
assert(CGC_lock != NULL, "Where's the CGC_lock?");
|
||||
assert(_markBitMap1.covers(heap_rs), "_markBitMap1 inconsistency");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user