summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '2.2/patches/05_all_fix_graceful_multiple_listeners.patch')
-rw-r--r--2.2/patches/05_all_fix_graceful_multiple_listeners.patch42
1 files changed, 0 insertions, 42 deletions
diff --git a/2.2/patches/05_all_fix_graceful_multiple_listeners.patch b/2.2/patches/05_all_fix_graceful_multiple_listeners.patch
deleted file mode 100644
index 6ed9de1..0000000
--- a/2.2/patches/05_all_fix_graceful_multiple_listeners.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c 2009/01/31 20:53:11 739607
-+++ httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c 2009/01/31 20:54:55 739608
-@@ -577,19 +577,27 @@
- apr_int32_t numdesc;
- const apr_pollfd_t *pdesc;
-
-- /* timeout == -1 == wait forever */
-- status = apr_pollset_poll(pollset, -1, &numdesc, &pdesc);
-+ /* check for termination first so we don't sleep for a while in
-+ * poll if already signalled
-+ */
-+ if (one_process && shutdown_pending) {
-+ SAFE_ACCEPT(accept_mutex_off());
-+ return;
-+ }
-+ else if (die_now) {
-+ /* In graceful stop/restart; drop the mutex
-+ * and terminate the child. */
-+ SAFE_ACCEPT(accept_mutex_off());
-+ clean_child_exit(0);
-+ }
-+ /* timeout == 10 seconds to avoid a hang at graceful restart/stop
-+ * caused by the closing of sockets by the signal handler
-+ */
-+ status = apr_pollset_poll(pollset, apr_time_from_sec(10),
-+ &numdesc, &pdesc);
- if (status != APR_SUCCESS) {
-- if (APR_STATUS_IS_EINTR(status)) {
-- if (one_process && shutdown_pending) {
-- return;
-- }
-- else if (die_now) {
-- /* In graceful stop/restart; drop the mutex
-- * and terminate the child. */
-- SAFE_ACCEPT(accept_mutex_off());
-- clean_child_exit(0);
-- }
-+ if (APR_STATUS_IS_TIMEUP(status) ||
-+ APR_STATUS_IS_EINTR(status)) {
- continue;
- }
- /* Single Unix documents select as returning errnos