You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by br...@apache.org on 2002/04/12 06:24:45 UTC
cvs commit: httpd-2.0/server/mpm/experimental/leader Makefile.in leader.c mpm.h
brianp 02/04/11 21:24:45
Modified: server/mpm/experimental/leader Makefile.in leader.c mpm.h
Log:
switch back to the worker's version of the pod code
Revision Changes Path
1.2 +1 -1 httpd-2.0/server/mpm/experimental/leader/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/experimental/leader/Makefile.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Makefile.in 12 Apr 2002 03:06:48 -0000 1.1
+++ Makefile.in 12 Apr 2002 04:24:44 -0000 1.2
@@ -1,5 +1,5 @@
LTLIBRARY_NAME = libleader.la
-LTLIBRARY_SOURCES = leader.c
+LTLIBRARY_SOURCES = leader.c pod.c
include $(top_srcdir)/build/ltlib.mk
1.3 +16 -25 httpd-2.0/server/mpm/experimental/leader/leader.c
Index: leader.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/experimental/leader/leader.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- leader.c 12 Apr 2002 03:07:53 -0000 1.2
+++ leader.c 12 Apr 2002 04:24:44 -0000 1.3
@@ -103,6 +103,7 @@
#include "http_connection.h"
#include "ap_mpm.h"
#include "mpm_common.h"
+#include "pod.h"
#include "ap_listen.h"
#include "scoreboard.h"
#include "mpm_default.h"
@@ -337,7 +338,6 @@
static worker_stack *idle_worker_stack;
#define ST_INIT 0
-#define ST_RESTART 0
#define ST_GRACEFUL 1
#define ST_UNGRACEFUL 2
@@ -1171,33 +1171,24 @@
/* see if termination was triggered while we slept */
switch(terminate_mode) {
case ST_GRACEFUL:
- rv = ST_GRACEFUL;
+ rv = AP_GRACEFUL;
break;
case ST_UNGRACEFUL:
- rv = ST_RESTART;
+ rv = AP_RESTART;
break;
}
}
- if (rv == ST_GRACEFUL || rv == ST_RESTART) {
- /* make sure the start thread has finished;
- * signal_threads() and join_workers depend on that
- */
- join_start_thread(start_thread_id);
- signal_threads(rv == ST_GRACEFUL ? ST_GRACEFUL : ST_UNGRACEFUL);
- break;
- }
}
- if (rv == ST_GRACEFUL) {
- /* A terminating signal was received. Now join each of the
- * workers to clean them up.
- * If the worker already exited, then the join frees
- * their resources and returns.
- * If the worker hasn't exited, then this blocks until
- * they have (then cleans up).
- */
- join_workers(threads);
- }
+ signal_threads(ST_GRACEFUL);
+ /* A terminating signal was received. Now join each of the
+ * workers to clean them up.
+ * If the worker already exited, then the join frees
+ * their resources and returns.
+ * If the worker hasn't exited, then this blocks until
+ * they have (then cleans up).
+ */
+ join_workers(threads);
}
free(threads);
@@ -1379,7 +1370,7 @@
if (idle_thread_count > max_spare_threads) {
/* Kill off one child */
- ap_mpm_pod_signal(pod);
+ ap_mpm_pod_signal(pod, TRUE);
idle_spawn_rate = 1;
}
else if (idle_thread_count < min_spare_threads) {
@@ -1609,7 +1600,7 @@
* (By "gracefully" we don't mean graceful in the same sense as
* "apachectl graceful" where we allow old connections to finish.)
*/
- ap_mpm_pod_killpg(pod, ap_daemons_limit);
+ ap_mpm_pod_killpg(pod, ap_daemons_limit, FALSE);
ap_reclaim_child_processes(1); /* Start with SIGTERM */
if (!child_fatal) {
@@ -1647,7 +1638,7 @@
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
AP_SIG_GRACEFUL_STRING " received. Doing graceful restart");
/* wake up the children...time to die. But we'll have more soon */
- ap_mpm_pod_killpg(pod, ap_daemons_limit);
+ ap_mpm_pod_killpg(pod, ap_daemons_limit, TRUE);
/* This is mostly for debugging... so that we know what is still
@@ -1660,7 +1651,7 @@
* and a SIGHUP, we may as well use the same signal, because some user
* pthreads are stealing signals from us left and right.
*/
- ap_mpm_pod_killpg(pod, ap_daemons_limit);
+ ap_mpm_pod_killpg(pod, ap_daemons_limit, FALSE);
ap_reclaim_child_processes(1); /* Start with SIGTERM */
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
1.3 +0 -1 httpd-2.0/server/mpm/experimental/leader/mpm.h
Index: mpm.h
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/experimental/leader/mpm.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mpm.h 12 Apr 2002 03:07:53 -0000 1.2
+++ mpm.h 12 Apr 2002 04:24:44 -0000 1.3
@@ -76,7 +76,6 @@
#define AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
#define AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK
-#define AP_MPM_USES_POD 1
#define MPM_CHILD_PID(i) (ap_scoreboard_image->parent[i].pid)
#define MPM_NOTE_CHILD_KILLED(i) (MPM_CHILD_PID(i) = 0)
#define MPM_ACCEPT_FUNC unixd_accept