mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
6770608: G1: Mutator thread can flush barrier and satb queues during safepoint
6660573: G1: BigApps Failure : guarantee(satb_mq_set.completed_buffers_num() == 0,"invariant") When exiting a mutator thread is removed from the thread list before it has a chance to flush its SATB and barrier queues. If GC happens at this moment the objects that are refererred from these queues can be moved, which will case a crash. The fix is simply to flush the buffers before removing a thread from the list. Reviewed-by: jcoomes, tonyp
This commit is contained in:
parent
98685a4d93
commit
cbf1c89d60
4 changed files with 58 additions and 29 deletions
|
@ -793,6 +793,8 @@ class JavaThread: public Thread {
|
|||
DirtyCardQueue _dirty_card_queue; // Thread-local log for dirty cards.
|
||||
// Set of all such queues.
|
||||
static DirtyCardQueueSet _dirty_card_queue_set;
|
||||
|
||||
void flush_barrier_queues();
|
||||
#endif // !SERIALGC
|
||||
|
||||
friend class VMThread;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue