]> granicus.if.org Git - postgresql/commit
Fix WakeupWaiters() to not wake up an exclusive locker unnecessarily.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 10 Feb 2014 13:14:07 +0000 (15:14 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 10 Feb 2014 13:18:18 +0000 (15:18 +0200)
commitd699ba41349e4ef397222a7223606fa03f4c4870
tree58a2754ed9160f942897c1ccb7159b7f4935e484
parent6c2744f1d3a0d2e456f8d52776c976da3eb8d3a0
Fix WakeupWaiters() to not wake up an exclusive locker unnecessarily.

WakeupWaiters() is supposed to wake up all LW_WAIT_UNTIL_FREE waiters of
the slot, but the loop incorrectly also woke up the first LW_EXCLUSIVE
waiter, if there was no LW_WAIT_UNTIL_FREE waiters in the queue.

Noted by Andres Freund. This code is new in 9.4, so no backpatching.
src/backend/access/transam/xlog.c