Mercurial > hg > truffle
diff src/share/vm/gc_implementation/shared/concurrentGCThread.cpp @ 4022:db89aa49298f
7099824: G1: we should take the pending list lock before doing the remark pause
Summary: Acquire the pending list lock in the prologue method of G1's concurrent VM_Operation and release the lock in the epilogue() method. The locking/unlocking order of the pending list lock and the Heap_lock should match that in the prologue and epilogue methods of VM_GC_Operation.
Reviewed-by: tonyp, ysr
author | johnc |
---|---|
date | Thu, 20 Oct 2011 12:06:20 -0700 |
parents | 2a241e764894 |
children | da91efe96a93 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Fri Oct 21 12:42:42 2011 -0400 +++ b/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Thu Oct 20 12:06:20 2011 -0700 @@ -224,6 +224,8 @@ MutexLockerEx x(&_monitor, Mutex::_no_safepoint_check_flag); assert(_buffer == empty, "Should be empty"); assert(msg != empty, "empty message"); + assert(!Heap_lock->owned_by_self(), "Heap_lock owned by requesting thread"); + _buffer = msg; while (_buffer != empty) { _monitor.notify();