Commit d699ba4
committed
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.1 parent 6c2744f commit d699ba4
1 file changed
+5
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1842 | 1842 | | |
1843 | 1843 | | |
1844 | 1844 | | |
1845 | | - | |
| 1845 | + | |
| 1846 | + | |
1846 | 1847 | | |
1847 | 1848 | | |
1848 | 1849 | | |
1849 | | - | |
| 1850 | + | |
1850 | 1851 | | |
1851 | 1852 | | |
1852 | | - | |
1853 | | - | |
1854 | 1853 | | |
1855 | 1854 | | |
1856 | 1855 | | |
| |||
1862 | 1861 | | |
1863 | 1862 | | |
1864 | 1863 | | |
| 1864 | + | |
| 1865 | + | |
1865 | 1866 | | |
1866 | 1867 | | |
1867 | 1868 | | |
| |||
0 commit comments