On Jun 1, 2007, at 10:19 AM, Colm MacCarthaigh wrote:

On Fri, Jun 01, 2007 at 10:05:26AM -0400, Jim Jagielski wrote:
-       if (ap_scoreboard_image->servers[n].status != SERVER_DEAD &&
-               kill((pid = ap_scoreboard_image->parent[n].pid), 0) == -1) {
-           ap_update_child_status(n, SERVER_DEAD, NULL);
-           /* just mark it as having a successful exit status */
-           bzero((char *) status, sizeof(ap_wait_t));
-           return(pid);
-       }
+        pid = ap_scoreboard_image->parent[n].pid;
+        if (ap_scoreboard_image->servers[n].status != SERVER_DEAD) {
+            if (in_pid_table(pid)) {
+                if (kill(pid, 0) == -1) {
+                    ap_update_child_status(n, SERVER_DEAD, NULL);
+                    /* just mark it as having a successful exit
status */
+                    bzero((char *) status, sizeof(ap_wait_t));
+                    return(pid);
+                }

Should we get rid of it from the table here? Can we get away without
removing stale pids in general? What if they are recycled by the OS
for something else?


No, that's a good point. We should likely remove the
pid from our table once the child goes away.

Reply via email to