From: Ryan Bloom Date: Thu, 11 Jul 2002 05:42:20 +0000 (+0000) Subject: Bring Apache in line with APR's new poll implementation. This isn't X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ddfe52e4a72bcfcc6043b5c81c264f966873fe2d;p=apache Bring Apache in line with APR's new poll implementation. This isn't optimal, because it still uses the compatibility functions to make it work, but it does work. The next step will be to take the memory for the pollsets under Apache's control. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@96005 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/experimental/mod_ext_filter.c b/modules/experimental/mod_ext_filter.c index 97bb9bc87e..37fa4137b1 100644 --- a/modules/experimental/mod_ext_filter.c +++ b/modules/experimental/mod_ext_filter.c @@ -71,6 +71,7 @@ #include "apr_strings.h" #include "apr_hash.h" #include "apr_lib.h" +#include "apr_poll.h" #define APR_WANT_STRFUNC #include "apr_want.h" @@ -627,9 +628,8 @@ static apr_status_t pass_data_to_filter(ap_filter_t *f, const char *data, #if APR_FILES_AS_SOCKETS int num_events; - rv = apr_poll(ctx->pollset, - &num_events, - f->r->server->timeout); + rv = apr_poll(ctx->pollset, 2, + &num_events, f->r->server->timeout); if (rv || dc->debug >= DBGLVL_GORY) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, f->r, "apr_poll()"); diff --git a/modules/proxy/proxy_connect.c b/modules/proxy/proxy_connect.c index 4a0b85266e..25423f00fb 100644 --- a/modules/proxy/proxy_connect.c +++ b/modules/proxy/proxy_connect.c @@ -61,6 +61,7 @@ #define CORE_PRIVATE #include "mod_proxy.h" +#include "apr_poll.h" module AP_MODULE_DECLARE_DATA proxy_connect_module; @@ -320,7 +321,7 @@ int ap_proxy_connect_handler(request_rec *r, proxy_server_conf *conf, while (1) { /* Infinite loop until error (one side closes the connection) */ /* ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "proxy: CONNECT: going to sleep (poll)");*/ - if ((rv = apr_poll(pollfd, &pollcnt, -1)) != APR_SUCCESS) + if ((rv = apr_poll(pollfd, 2, &pollcnt, -1)) != APR_SUCCESS) { apr_socket_close(sock); ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, "proxy: CONNECT: error apr_poll()"); diff --git a/server/mpm/beos/beos.c b/server/mpm/beos/beos.c index 3aaa1e3859..e07a7f14ba 100644 --- a/server/mpm/beos/beos.c +++ b/server/mpm/beos/beos.c @@ -87,6 +87,7 @@ #include "mpm.h" #include "mpm_default.h" #include "apr_thread_mutex.h" +#include "apr_poll.h" extern int _kset_fd_limit_(int num); @@ -421,7 +422,7 @@ static int32 worker_thread(void * dummy) apr_int16_t event; apr_status_t ret; - ret = apr_poll(pollset, &srv, -1); + ret = apr_poll(pollset, num_listening_sockets, &srv, -1); if (ret != APR_SUCCESS) { if (APR_STATUS_IS_EINTR(ret)) { diff --git a/server/mpm/experimental/leader/leader.c b/server/mpm/experimental/leader/leader.c index 02d55a1204..aefa44a163 100644 --- a/server/mpm/experimental/leader/leader.c +++ b/server/mpm/experimental/leader/leader.c @@ -106,6 +106,7 @@ #include "ap_listen.h" #include "scoreboard.h" #include "mpm_default.h" +#include "apr_poll.h" #include #include /* for INT_MAX */ @@ -888,7 +889,7 @@ static void *worker_thread(apr_thread_t *thd, void * dummy) apr_status_t ret; apr_int16_t event; - ret = apr_poll(pollset, &n, -1); + ret = apr_poll(pollset, num_listensocks, &n, -1); if (ret != APR_SUCCESS) { if (APR_STATUS_IS_EINTR(ret)) { continue; diff --git a/server/mpm/experimental/perchild/perchild.c b/server/mpm/experimental/perchild/perchild.c index 2d6dbf9ff5..ce58400ee2 100644 --- a/server/mpm/experimental/perchild/perchild.c +++ b/server/mpm/experimental/perchild/perchild.c @@ -95,6 +95,7 @@ #include "mpm.h" #include "scoreboard.h" #include "util_filter.h" +#include "apr_poll.h" /* ### should be APR-ized */ #include @@ -748,7 +749,7 @@ static void *worker_thread(apr_thread_t *thd, void *arg) while (!workers_may_exit) { apr_int16_t event; - srv = apr_poll(pollset, &n, -1); + srv = apr_poll(pollset, num_listensocks, &n, -1); if (srv != APR_SUCCESS) { if (APR_STATUS_IS_EINTR(srv)) { diff --git a/server/mpm/experimental/threadpool/threadpool.c b/server/mpm/experimental/threadpool/threadpool.c index 79e18ec414..e1e1102058 100644 --- a/server/mpm/experimental/threadpool/threadpool.c +++ b/server/mpm/experimental/threadpool/threadpool.c @@ -69,6 +69,7 @@ #include "apr_file_io.h" #include "apr_thread_proc.h" #include "apr_signal.h" +#include "apr_poll.h" #include "apr_thread_mutex.h" #include "apr_thread_cond.h" #include "apr_proc_mutex.h" @@ -913,7 +914,7 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) apr_status_t ret; apr_int16_t event; - ret = apr_poll(pollset, &n, -1); + ret = apr_poll(pollset, num_listensocks, &n, -1); if (ret != APR_SUCCESS) { if (APR_STATUS_IS_EINTR(ret)) { continue; diff --git a/server/mpm/mpmt_os2/mpmt_os2_child.c b/server/mpm/mpmt_os2/mpmt_os2_child.c index 8fa7016306..31a7526571 100644 --- a/server/mpm/mpmt_os2/mpmt_os2_child.c +++ b/server/mpm/mpmt_os2/mpmt_os2_child.c @@ -73,6 +73,7 @@ #include "ap_mpm.h" #include "ap_listen.h" #include "apr_portable.h" +#include "apr_poll.h" #include "mpm_common.h" #include "apr_strings.h" #include @@ -250,7 +251,7 @@ void ap_mpm_child_main(apr_pool_t *pconf) rv = APR_FROM_OS_ERROR(rc); if (rv == APR_SUCCESS) { - rv = apr_poll(pollset, &nsds, -1); + rv = apr_poll(pollset, num_listeners, &nsds, -1); DosReleaseMutexSem(ap_mpm_accept_mutex); } diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index ec12fd8376..9c9b7f6f0f 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -89,6 +89,7 @@ #include "mpm_common.h" #include "ap_listen.h" #include "ap_mmn.h" +#include "apr_poll.h" #ifdef HAVE_BSTRING_H #include /* for IRIX, FD_SET calls bzero() */ @@ -631,7 +632,7 @@ static void child_main(int child_num_arg) apr_int16_t event; apr_int32_t n; - ret = apr_poll(pollset, &n, -1); + ret = apr_poll(pollset, num_listensocks, &n, -1); if (ret != APR_SUCCESS) { if (APR_STATUS_IS_EINTR(ret)) { continue; diff --git a/server/mpm/worker/worker.c b/server/mpm/worker/worker.c index c9cec3f853..72d5ce7aaf 100644 --- a/server/mpm/worker/worker.c +++ b/server/mpm/worker/worker.c @@ -71,6 +71,7 @@ #include "apr_signal.h" #include "apr_thread_mutex.h" #include "apr_proc_mutex.h" +#include "apr_poll.h" #define APR_WANT_STRFUNC #include "apr_want.h" @@ -758,7 +759,7 @@ static void *listener_thread(apr_thread_t *thd, void * dummy) apr_status_t ret; apr_int16_t event; - ret = apr_poll(pollset, &n, -1); + ret = apr_poll(pollset, num_listensocks, &n, -1); if (ret != APR_SUCCESS) { if (APR_STATUS_IS_EINTR(ret)) { continue; diff --git a/support/ab.c b/support/ab.c index 9d603cef19..b70c6efa7b 100644 --- a/support/ab.c +++ b/support/ab.c @@ -166,6 +166,7 @@ #include "apr_lib.h" #include "apr_portable.h" #include "ap_release.h" +#include "apr_poll.h" #define APR_WANT_STRFUNC #include "apr_want.h" @@ -1648,7 +1649,7 @@ static void test(void) status = APR_SUCCESS; else #endif - status = apr_poll(readbits, &n, aprtimeout); + status = apr_poll(readbits, concurrency, &n, aprtimeout); if (status != APR_SUCCESS) apr_err("apr_poll", status); @@ -1725,14 +1726,14 @@ static void test(void) static void copyright(void) { if (!use_html) { - printf("This is ApacheBench, Version %s\n", AP_AB_BASEREVISION " <$Revision: 1.108 $> apache-2.0"); + printf("This is ApacheBench, Version %s\n", AP_AB_BASEREVISION " <$Revision: 1.109 $> apache-2.0"); printf("Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\n"); printf("Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/\n"); printf("\n"); } else { printf("

\n"); - printf(" This is ApacheBench, Version %s <%s> apache-2.0
\n", AP_AB_BASEREVISION, "$Revision: 1.108 $"); + printf(" This is ApacheBench, Version %s <%s> apache-2.0
\n", AP_AB_BASEREVISION, "$Revision: 1.109 $"); printf(" Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
\n"); printf(" Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
\n"); printf("

\n

\n");