From: Paul Querna Date: Sat, 1 Nov 2008 06:02:01 +0000 (+0000) Subject: Move creation of the pollcb object to after we fork(), since kqueues don't persist... X-Git-Tag: 2.3.0~188 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eac12b8b18d8f0a39f250b4e2a4ec3b2aa71cc51;p=thirdparty%2Fapache%2Fhttpd.git Move creation of the pollcb object to after we fork(), since kqueues don't persist across fork(). (huh, didn't know that before) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@709653 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/mpm/simple/simple_core.c b/server/mpm/simple/simple_core.c index 3e4f228a79e..eeedabbb1d7 100644 --- a/server/mpm/simple/simple_core.c +++ b/server/mpm/simple/simple_core.c @@ -63,14 +63,5 @@ apr_status_t simple_core_init(simple_core_t * sc, apr_pool_t * pool) return rv; } - rv = apr_pollcb_create(&sc->pollcb, 512 /* pqXXXXX: make configrable */ , - sc->pool, 0); - - if (rv) { - ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, - "simple_core_init: apr_pollcb_create failed."); - return rv; - } - return APR_SUCCESS; } diff --git a/server/mpm/simple/simple_run.c b/server/mpm/simple/simple_run.c index 691c27523a3..837bb78381a 100644 --- a/server/mpm/simple/simple_run.c +++ b/server/mpm/simple/simple_run.c @@ -261,10 +261,30 @@ static int simple_setup_privs(simple_core_t * sc) return 0; } +static int simple_setup_pollcb(simple_core_t * sc) +{ + apr_status_t rv; + + rv = apr_pollcb_create(&sc->pollcb, 512 /* pqXXXXX: make configrable */ , + sc->pool, 0); + + if (rv) { + ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, + "simple_core_init: apr_pollcb_create failed."); + return rv; + } + return rv; +} + int simple_child_loop(simple_core_t * sc) { apr_status_t rv; + rv = simple_setup_pollcb(sc); + if (rv) { + return rv; + } + rv = simple_setup_workers(sc); if (rv) { ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, @@ -295,6 +315,11 @@ int simple_main_loop(simple_core_t * sc) { apr_status_t rv; + rv = simple_setup_pollcb(sc); + if (rv) { + return rv; + } + rv = simple_setup_workers(sc); if (rv) { ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL,