]> granicus.if.org Git - apache/commitdiff
No reason to have a loop writing one byte at a time to the pipe of death
authorManoj Kasichainula <manoj@apache.org>
Tue, 3 Aug 1999 20:41:37 +0000 (20:41 +0000)
committerManoj Kasichainula <manoj@apache.org>
Tue, 3 Aug 1999 20:41:37 +0000 (20:41 +0000)
when the write call will do it for us. Also fix the comments a bit.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83562 13f79535-47bb-0310-9956-ffa450edef68

server/mpm/dexter/dexter.c
server/mpm/mpmt_pthread/mpmt_pthread.c

index a680efb1891e48cedb11fa0431786ad1afcdf953..55b0c01951486a7429870426ebd185efc9a862e0 100644 (file)
@@ -1419,11 +1419,9 @@ int ap_mpm_run(pool *_pconf, pool *plog, server_rec *s)
                ap_scoreboard_image[i].status = SERVER_DYING;
            } 
        }
-       /* kill off the idle ones */
-        for (i = 0; i < num_daemons; ++i) {
-            if (write(pipe_of_death[1], &char_of_death, 1) == -1) {
-                ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "write pipe_of_death");
-            }
+       /* give the children the signal to die */
+        if (write(pipe_of_death[1], &char_of_death, num_daemons) == -1) {
+            ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, "write pipe_of_death");
         }
     }
     else {
index 33b57491d63419ebae2e4929a1bdffb3c62497c2..e8cf350ab4092590767eb354bb49f9fc8c0a084c 100644 (file)
@@ -1469,11 +1469,11 @@ int ap_mpm_run(pool *_pconf, pool *plog, server_rec *s)
        ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, server_conf,
                    "SIGWINCH received.  Doing graceful restart");
 
-       /* kill off the idle ones */
-        for (i = 0; i < ap_daemons_limit; ++i) {
-            if (write(pipe_of_death[1], &char_of_death, 1) == -1) {
-                ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "write pipe_of_death");
-            }
+        /* give the children the signal to die. Sending more bytes than
+         * children is okay, because the pipe is recreated for every
+         * generation */
+        if (write(pipe_of_death[1], &char_of_death, ap_daemons_limit) == -1) {
+            ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf, "write pipe_of_death");
         }
 
        /* This is mostly for debugging... so that we know what is still