Re: [PATCH] LockAcquireExtended improvement

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Will Mortensen <will@extrahop.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Jingxian Li <aqktjcm@qq.com>, andres <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-05-18T11:37:35Z
Lists: pgsql-hackers
On Fri, May 17, 2024 at 11:38:35PM -0700, Will Mortensen wrote:
> On Tue, Mar 26, 2024 at 7:14 PM Will Mortensen <will@extrahop.com> wrote:
>> This comment on ProcSleep() seems to have the values of dontWait
>> backward (double negatives are tricky):
>>
>>     * Result: PROC_WAIT_STATUS_OK if we acquired the lock,
>> PROC_WAIT_STATUS_ERROR
>>     * if not (if dontWait = true, this is a deadlock; if dontWait = false, we
>>     * would have had to wait).
>>
>> Also there's a minor typo in a comment in LockAcquireExtended():
>>
>>     * Check the proclock entry status. If dontWait = true, this is an
>>     * expected case; otherwise, it will open happen if something in the
>>     * ipc communication doesn't work correctly.
>>
>> "open" should be "only".
> 
> Here's a patch fixing those typos.

Perhaps, this, err..  Should not have been named "dontWait" but
"doWait" ;)

Anyway, this goes way back in time and it is deep in the stack
(LockAcquireExtended, etc.) so it is too late to change: the patch
should be OK as it is.
--
Michael

Commits

  1. Fix typo and comments related to the recent no-wait lock improvements

  2. Allow a no-wait lock acquisition to succeed in more cases.