]> granicus.if.org Git - apache/commitdiff
Port mpmt_pthread and dexter to the new ap_proc_t code. This works
authorRyan Bloom <rbb@apache.org>
Tue, 23 May 2000 21:27:37 +0000 (21:27 +0000)
committerRyan Bloom <rbb@apache.org>
Tue, 23 May 2000 21:27:37 +0000 (21:27 +0000)
just fine for these MPMs and it was easy to make the changes.

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

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

index f60758c2266f7077f018230561a8442685565db5..b2f505d974031605f57e060b7898bc0894631965 100644 (file)
@@ -370,10 +370,8 @@ static void set_signals(void)
 #endif
 }
 
-static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
+static void process_child_status(ap_proc_t *pid, ap_wait_t status)
 {
-    pid_t pid;
-    ap_get_os_proc(&pid, abs_pid);
     /* Child died... if it died due to a fatal error,
        * we should simply bail out.
        */
@@ -382,7 +380,7 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
        ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, errno, ap_server_conf,
                        "Child %ld returned a Fatal error... \n"
                        "Apache is exiting!",
-                       (long)pid);
+                       (long)pid->pid);
        exit(APEXIT_CHILDFATAL);
     }
     if (WIFSIGNALED(status)) {
@@ -400,7 +398,7 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
                             ap_server_conf,
                             "child pid %ld exit signal %s (%d), "
                             "possible coredump in %s",
-                            (long)pid, (WTERMSIG(status) >= NumSIG) ? "" : 
+                            (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" :
                             SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status),
                             ap_coredump_dir);
            }
@@ -408,7 +406,8 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
 #endif
                ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno,
                             ap_server_conf,
-                            "child pid %ld exit signal %s (%d)", (long)pid,
+                            "child pid %ld exit signal %s (%d)", 
+                             (long)pid->pid,
                             SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status));
 #ifdef WCOREDUMP
            }
@@ -417,7 +416,7 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
            ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, errno,
                         ap_server_conf,
                         "child pid %ld exit signal %d",
-                        (long)pid, WTERMSIG(status));
+                        (long)pid->pid, WTERMSIG(status));
 #endif
        }
     }
@@ -982,14 +981,12 @@ static void server_main_loop(int remaining_children_to_start)
         pid = ap_wait_or_timeout(&status, pconf);
         
         if (pid != NULL) {
-            pid_t actual_pid;
-            ap_get_os_proc(&actual_pid, pid);
             process_child_status(pid, status);
             /* non-fatal death... note that it's gone in the child table and
              * clean out the status table. */
             child_slot = -1;
             for (i = 0; i < ap_max_daemons_limit; ++i) {
-               if (ap_child_table[i].pid == actual_pid) {
+               if (ap_child_table[i].pid == pid->pid) {
                     int j;
 
                     child_slot = i;
@@ -1024,7 +1021,7 @@ static void server_main_loop(int remaining_children_to_start)
                ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, errno, 
                              ap_server_conf,
                            "long lost child came home! (pid %ld)", 
-                             (long)actual_pid);
+                             (long)pid->pid);
            }
            /* Don't perform idle maintenance when a child dies,
              * only do it when there's a timeout.  Remember only a
index 365e41e07cf466d8ebb904671dcff2fcbb8815a9..d07a832530d1eb216e48416d7396b03cdb63a10a 100644 (file)
@@ -375,10 +375,8 @@ static void set_signals(void)
 #endif
 }
 
-static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
+static void process_child_status(ap_proc_t *pid, ap_wait_t status)
 {
-    pid_t pid;
-    ap_get_os_proc(&pid, abs_pid);
     /* Child died... if it died due to a fatal error,
        * we should simply bail out.
        */
@@ -387,7 +385,7 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
        ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf,
                        "Child %ld returned a Fatal error... \n"
                        "Apache is exiting!",
-                       (long)pid);
+                       (long)pid->pid);
        exit(APEXIT_CHILDFATAL);
     }
     if (WIFSIGNALED(status)) {
@@ -405,7 +403,7 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
                             0, ap_server_conf,
                             "child pid %ld exit signal %s (%d), "
                             "possible coredump in %s",
-                            (long)pid, (WTERMSIG(status) >= NumSIG) ? "" : 
+                            (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" :
                             SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status),
                             ap_coredump_dir);
            }
@@ -413,7 +411,8 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
 #endif
                ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE,
                             0, ap_server_conf,
-                            "child pid %ld exit signal %s (%d)", (long)pid,
+                            "child pid %ld exit signal %s (%d)", 
+                             (long)pid->pid,
                             SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status));
 #ifdef WCOREDUMP
            }
@@ -422,7 +421,7 @@ static void process_child_status(ap_proc_t *abs_pid, ap_wait_t status)
            ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE,
                         ap_server_conf,
                         "child pid %ld exit signal %d",
-                        (long)pid, WTERMSIG(status));
+                        (long)pid->pid, WTERMSIG(status));
 #endif
        }
     }
@@ -1050,13 +1049,10 @@ static void server_main_loop(int remaining_children_to_start)
                /* Great, we've probably just lost a slot in the
                 * scoreboard.  Somehow we don't know about this child.
                 */
-               ap_os_proc_t actual_pid;
-
-               ap_get_os_proc(&actual_pid, pid);
                ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, 0,
                             ap_server_conf,
                             "long lost child came home! (pid %ld)",
-                            (long)actual_pid);
+                            (long)pid->pid);
            }
            /* Don't perform idle maintenance when a child dies,
              * only do it when there's a timeout.  Remember only a
index 9e81f0c2038f1cb9e89e7a8e1852f726f7b75c1d..6be2fbf86c83b0ea6ba49ab3e3c9c4bdc88ed36b 100644 (file)
@@ -206,13 +206,10 @@ void increment_counts(int child_num, int thread_num, request_rec *r)
 API_EXPORT(int) find_child_by_pid(ap_proc_t *pid)
 {
     int i;
-    pid_t actual_pid;
-
     int max_daemons_limit = ap_get_max_daemons();
-    ap_get_os_proc(&actual_pid, pid);
 
     for (i = 0; i < max_daemons_limit; ++i)
-       if (ap_scoreboard_image->parent[i].pid == actual_pid)
+       if (ap_scoreboard_image->parent[i].pid == pid->pid)
            return i;
 
     return -1;