From 9ad9c5cda1087151c64074a965a68b407a8bd229 Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Mon, 23 Apr 2018 15:11:34 +0100
Subject: 42705: Another safety fix for pgrp reclaiming.
Only do this if killpg(dead_pid, 0) returns -1, indicating
the pgprp doesn't exist any more, else there is a race
if other proceses have started using it.
---
Src/signals.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'Src/signals.c')
diff --git a/Src/signals.c b/Src/signals.c
index 6e1215875..f2165c005 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -538,7 +538,8 @@ wait_for_processes(void)
update_process(pn, status);
#endif
if (WIFEXITED(status) &&
- pn->pid == jn->gleader) {
+ pn->pid == jn->gleader &&
+ killpg(pn->pid, 0) == -1) {
jn->gleader = 0;
if (!(jn->stat & STAT_NOSTTY)) {
/*
--
cgit 1.4.1