8266432: ZGC: GC allocation stalls can trigger deadlocks

Reviewed-by: pliden, ayang
This commit is contained in:
Stefan Karlsson 2021-05-04 07:27:59 +00:00
parent 30ccd8081b
commit ce1bc9d8bc

View File

@ -132,12 +132,8 @@ void ZForwarding::release_page() {
bool ZForwarding::wait_page_released() const {
if (Atomic::load_acquire(&_ref_count) != 0) {
ZLocker<ZConditionLock> locker(&_ref_lock);
if (_ref_abort) {
return false;
}
ZStatTimer timer(ZCriticalPhaseRelocationStall);
ZLocker<ZConditionLock> locker(&_ref_lock);
while (Atomic::load_acquire(&_ref_count) != 0) {
if (_ref_abort) {
return false;