*** ./src/backend/storage/lmgr/proc.c.orig 2013-02-04 22:28:27.000000000 +0100 --- ./src/backend/storage/lmgr/proc.c 2013-03-15 14:40:33.044812917 +0100 *************** *** 158,164 **** InitProcGlobal(void) { PGPROC *procs; ! int i; bool found; /* Create the ProcGlobal shared structure */ --- 158,165 ---- InitProcGlobal(void) { PGPROC *procs; ! int i, ! j; bool found; /* Create the ProcGlobal shared structure */ *************** *** 202,207 **** --- 203,211 ---- InitSharedLatch(&procs[i].procLatch); procs[i].links.next = (SHM_QUEUE *) ProcGlobal->freeProcs; ProcGlobal->freeProcs = &procs[i]; + + for (j = 0; j < NUM_LOCK_PARTITIONS; j++) + SHMQueueInit(&(procs[i].myProcLocks[j])); } /* *************** *** 221,226 **** --- 225,233 ---- InitSharedLatch(&procs[i].procLatch); procs[i].links.next = (SHM_QUEUE *) ProcGlobal->autovacFreeProcs; ProcGlobal->autovacFreeProcs = &procs[i]; + + for (j = 0; j < NUM_LOCK_PARTITIONS; j++) + SHMQueueInit(&(procs[i].myProcLocks[j])); } /* *************** *** 232,237 **** --- 239,247 ---- AuxiliaryProcs[i].pid = 0; /* marks auxiliary proc as not in use */ PGSemaphoreCreate(&(AuxiliaryProcs[i].sem)); InitSharedLatch(&AuxiliaryProcs[i].procLatch); + + for (j = 0; j < NUM_LOCK_PARTITIONS; j++) + SHMQueueInit(&(procs[i].myProcLocks[j])); } /* Create ProcStructLock spinlock, too */ *************** *** 247,253 **** { /* use volatile pointer to prevent code rearrangement */ volatile PROC_HDR *procglobal = ProcGlobal; - int i; /* * ProcGlobal should be set up already (if we are a backend, we inherit --- 257,262 ---- *************** *** 337,344 **** MyProc->lwWaitLink = NULL; MyProc->waitLock = NULL; MyProc->waitProcLock = NULL; - for (i = 0; i < NUM_LOCK_PARTITIONS; i++) - SHMQueueInit(&(MyProc->myProcLocks[i])); MyProc->recoveryConflictPending = false; /* Initialize fields for sync rep */ --- 346,351 ----