Fix variable shadowing in procarray.c.
ProcArrayGroupClearXid function has a parameter named "proc", but the same name was used for its local variables. This commit fixes this variable shadowing, to improve code readability. Back-patch to all supported versions, to make future back-patching easy though this patch is classified as refactoring only. Reported-by: Ranier Vilela Author: Ranier Vilela, Aleksander Alekseev https://postgr.es/m/CAEudQAqyoTZC670xWi6w-Oe2_Bk1bfu2JzXz6xRfiOUzm7xbyQ@mail.gmail.com
This commit is contained in:
parent
fe8821ca7d
commit
92a8d7610e
@ -840,12 +840,12 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid)
|
|||||||
/* Walk the list and clear all XIDs. */
|
/* Walk the list and clear all XIDs. */
|
||||||
while (nextidx != INVALID_PGPROCNO)
|
while (nextidx != INVALID_PGPROCNO)
|
||||||
{
|
{
|
||||||
PGPROC *proc = &allProcs[nextidx];
|
PGPROC *nextproc = &allProcs[nextidx];
|
||||||
|
|
||||||
ProcArrayEndTransactionInternal(proc, proc->procArrayGroupMemberXid);
|
ProcArrayEndTransactionInternal(nextproc, nextproc->procArrayGroupMemberXid);
|
||||||
|
|
||||||
/* Move to next proc in list. */
|
/* Move to next proc in list. */
|
||||||
nextidx = pg_atomic_read_u32(&proc->procArrayGroupNext);
|
nextidx = pg_atomic_read_u32(&nextproc->procArrayGroupNext);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We're done with the lock now. */
|
/* We're done with the lock now. */
|
||||||
@ -860,18 +860,18 @@ ProcArrayGroupClearXid(PGPROC *proc, TransactionId latestXid)
|
|||||||
*/
|
*/
|
||||||
while (wakeidx != INVALID_PGPROCNO)
|
while (wakeidx != INVALID_PGPROCNO)
|
||||||
{
|
{
|
||||||
PGPROC *proc = &allProcs[wakeidx];
|
PGPROC *nextproc = &allProcs[wakeidx];
|
||||||
|
|
||||||
wakeidx = pg_atomic_read_u32(&proc->procArrayGroupNext);
|
wakeidx = pg_atomic_read_u32(&nextproc->procArrayGroupNext);
|
||||||
pg_atomic_write_u32(&proc->procArrayGroupNext, INVALID_PGPROCNO);
|
pg_atomic_write_u32(&nextproc->procArrayGroupNext, INVALID_PGPROCNO);
|
||||||
|
|
||||||
/* ensure all previous writes are visible before follower continues. */
|
/* ensure all previous writes are visible before follower continues. */
|
||||||
pg_write_barrier();
|
pg_write_barrier();
|
||||||
|
|
||||||
proc->procArrayGroupMember = false;
|
nextproc->procArrayGroupMember = false;
|
||||||
|
|
||||||
if (proc != MyProc)
|
if (nextproc != MyProc)
|
||||||
PGSemaphoreUnlock(proc->sem);
|
PGSemaphoreUnlock(nextproc->sem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user