mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
7114303: G1: assert(_g1->mark_in_progress()) failed: shouldn't be here otherwise
Race between the VM thread reading G1CollectedHeap::_mark_in_progress and it being set by the concurrent mark thread when concurrent marking is aborted by a full GC. Have the concurrent mark thread join the SuspendibleThreadSet before changing the marking state. Reviewed-by: tonyp, brutisso
This commit is contained in:
parent
15070123fa
commit
861168c82e
3 changed files with 5 additions and 9 deletions
|
@ -191,7 +191,11 @@ void ConcurrentMarkThread::run() {
|
|||
VM_CGC_Operation op(&cl_cl, verbose_str);
|
||||
VMThread::execute(&op);
|
||||
} else {
|
||||
// We don't want to update the marking status if a GC pause
|
||||
// is already underway.
|
||||
_sts.join();
|
||||
g1h->set_marking_complete();
|
||||
_sts.leave();
|
||||
}
|
||||
|
||||
// Check if cleanup set the free_regions_coming flag. If it
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue