diff options
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r-- | src/backend/access/transam/xlog.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 3ecaf181392..00fe8c8ae72 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -2671,8 +2671,14 @@ XLogSetAsyncXactLSN(XLogRecPtr asyncXactLSN) wakeup = true; } - if (wakeup && ProcGlobal->walwriterLatch) - SetLatch(ProcGlobal->walwriterLatch); + if (wakeup) + { + volatile PROC_HDR *procglobal = ProcGlobal; + ProcNumber walwriterProc = procglobal->walwriterProc; + + if (walwriterProc != INVALID_PROC_NUMBER) + SetLatch(&GetPGProcByNumber(walwriterProc)->procLatch); + } } /* |