summaryrefslogtreecommitdiffstats
path: root/include/http_connection.h
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2011-06-19 14:23:42 +0200
committerStefan Fritsch <sf@apache.org>2011-06-19 14:23:42 +0200
commit18fdb9d7119da5e2d521eb8307b73e1f482b15c6 (patch)
treed8b011ac213b3fc82d990a0ec98ea070d9e38fc2 /include/http_connection.h
parentupdate transformation (diff)
downloadapache2-18fdb9d7119da5e2d521eb8307b73e1f482b15c6.tar.xz
apache2-18fdb9d7119da5e2d521eb8307b73e1f482b15c6.zip
Some improvements for handling of many connections for MPM event:
- Process lingering close asynchronously instead of tying up worker threads (based on patch by Jeff Trawick). - If the number of connections of a process is above threads_per_child + WORKER_OVERCOMMIT * (idle_workers - 1) (WORKER_OVERCOMMIT is fixed at 2, at the moment), or if all workers are busy, don't accept new connections in that process. Such a dynamic connection limit is necessary because we may have both async and non-async (ssl) connections. WORKER_OVERCOMMIT should be a config option. - Don't count idle workers of not-accepting processes against MinSpareThreads, so that the parent will spawn new processes when necessary. - If we receive a keep-alive request while all workers are busy, don't block but close the connection immediately so that the client will re-connect to a different process. Related changes: - Log what is going on at trace loglevels. - Remove the bypass_push poll type flag, this code cannot be hit anymore (if it ever could?). - Add some macro helpers for dealing with timeout queues. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1137358 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include/http_connection.h')
-rw-r--r--include/http_connection.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/http_connection.h b/include/http_connection.h
index 37437cfd5a..d5bca043bb 100644
--- a/include/http_connection.h
+++ b/include/http_connection.h
@@ -70,7 +70,9 @@ AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c);
*/
AP_DECLARE(void) ap_lingering_close(conn_rec *c);
- /* Hooks */
+AP_DECLARE(int) ap_start_lingering_close(conn_rec *c);
+
+/* Hooks */
/**
* create_connection is a RUN_FIRST hook which allows modules to create
* connections. In general, you should not install filters with the