Michael Paquier <mich...@paquier.xyz> writes: >> + LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); >> + MyProc->vacuumFlags |= PROC_IN_SAFE_IC; >> + ProcGlobal->vacuumFlags[MyProc->pgxactoff] = >> MyProc->vacuumFlags; >> + LWLockRelease(ProcArrayLock);
> I can't help noticing that you are repeating the same code pattern > eight times. I think that this should be in its own routine, and that > we had better document that this should be called just after starting > a transaction, with an assertion enforcing that. Do we really need exclusive lock on the ProcArray to make this flag change? That seems pretty bad from a concurrency standpoint. regards, tom lane