diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 9fe6855945bb56d105a4d7896729c15958ef6087..bcec17335b8f70831204a2b9a4301b3112ea9f00 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -1005,6 +1005,12 @@ LWLockWaitForVar(LWLock *lock, uint64 *valptr, uint64 oldval, uint64 *newval) lock->tail = proc; lock->head = proc; + /* + * Set releaseOK, to make sure we get woken up as soon as the lock is + * released. + */ + lock->releaseOK = true; + /* Can release the mutex now */ SpinLockRelease(&lock->mutex);