From ec9a41f2da8f284560e0e99bf64c2dc2aa0c67f0 Mon Sep 17 00:00:00 2001 From: Paul Querna Date: Sun, 28 Jun 2009 08:18:37 +0000 Subject: [PATCH] Only remove sockets from the pollcb when they have events being polled for. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@789067 13f79535-47bb-0310-9956-ffa450edef68 --- server/mpm/simple/simple_io.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/server/mpm/simple/simple_io.c b/server/mpm/simple/simple_io.c index d7c18928b7..b1d77f30fc 100644 --- a/server/mpm/simple/simple_io.c +++ b/server/mpm/simple/simple_io.c @@ -64,14 +64,16 @@ static apr_status_t simple_io_process(simple_conn_t * scon) while (!c->aborted) { - cs->pfd.reqevents = APR_POLLOUT | APR_POLLHUP | APR_POLLERR | APR_POLLIN; - rv = apr_pollcb_remove(sc->pollcb, &cs->pfd); - if (rv) { - ap_log_error(APLOG_MARK, APLOG_ERR, rv, ap_server_conf, - "process_socket: apr_pollcb_remove failure"); - /*AP_DEBUG_ASSERT(rv == APR_SUCCESS);*/ + if (cs->pfd.reqevents != 0) { + rv = apr_pollcb_remove(sc->pollcb, &cs->pfd); + if (rv) { + ap_log_error(APLOG_MARK, APLOG_ERR, rv, ap_server_conf, + "simple_io_process: apr_pollcb_remove failure"); + /*AP_DEBUG_ASSERT(rv == APR_SUCCESS);*/ + } + cs->pfd.reqevents = 0; } - + if (cs->state == CONN_STATE_READ_REQUEST_LINE) { if (!c->aborted) { ap_run_process_connection(c); -- 2.50.1