summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/ipc/procsignal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c
index 038aeca6151..87027f27eb7 100644
--- a/src/backend/storage/ipc/procsignal.c
+++ b/src/backend/storage/ipc/procsignal.c
@@ -284,6 +284,7 @@ SendProcSignal(pid_t pid, ProcSignalReason reason, ProcNumber procNumber)
if (procNumber != INVALID_PROC_NUMBER)
{
+ Assert(procNumber < NumProcSignalSlots);
slot = &ProcSignal->psh_slot[procNumber];
SpinLockAcquire(&slot->pss_mutex);
@@ -300,7 +301,7 @@ SendProcSignal(pid_t pid, ProcSignalReason reason, ProcNumber procNumber)
else
{
/*
- * Pronumber not provided, so search the array using pid. We search
+ * procNumber not provided, so search the array using pid. We search
* the array back to front so as to reduce search overhead. Passing
* INVALID_PROC_NUMBER means that the target is most likely an
* auxiliary process, which will have a slot near the end of the
@@ -404,7 +405,8 @@ EmitProcSignalBarrier(ProcSignalBarrierType type)
SpinLockRelease(&slot->pss_mutex);
kill(pid, SIGUSR1);
}
- SpinLockRelease(&slot->pss_mutex);
+ else
+ SpinLockRelease(&slot->pss_mutex);
}
}