Improve BackendXidGetPid() to only access allProcs on matching XID

Compilers are able to optimize that, but it makes the code slightly more
readable this way.

Author: Zhao Junwang
Reviewed-by: Ashutosh Bapat
Discussion: https://postgr.es/m/CAEG8a3+i9gtqF65B+g_puVaCQuf0rZC-EMqMyEjGFJYOqUUWfA@mail.gmail.com
pull/140/head
Michael Paquier 2 years ago
parent 8438a3ffef
commit e722846daf
  1. 4
      src/backend/storage/ipc/procarray.c

@ -3173,12 +3173,12 @@ BackendXidGetPid(TransactionId xid)
LWLockAcquire(ProcArrayLock, LW_SHARED);
for (index = 0; index < arrayP->numProcs; index++)
{
if (other_xids[index] == xid)
{
int pgprocno = arrayP->pgprocnos[index];
PGPROC *proc = &allProcs[pgprocno];
if (other_xids[index] == xid)
{
result = proc->pid;
break;
}

Loading…
Cancel
Save