]> granicus.if.org Git - apache/commitdiff
Move creation of the pollcb object to after we fork(), since kqueues don't persist...
authorPaul Querna <pquerna@apache.org>
Sat, 1 Nov 2008 06:02:01 +0000 (06:02 +0000)
committerPaul Querna <pquerna@apache.org>
Sat, 1 Nov 2008 06:02:01 +0000 (06:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@709653 13f79535-47bb-0310-9956-ffa450edef68

server/mpm/simple/simple_core.c
server/mpm/simple/simple_run.c

index 3e4f228a79e2e9f7b4c5ae44ae1c52f599e35e14..eeedabbb1d7a1f89a4b8962c21b86b174487d4a0 100644 (file)
@@ -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;
 }
index 691c27523a3643e76e031b3cba5282c3ab6363f1..837bb78381a667dc79b7352bc392609cf8b266a7 100644 (file)
@@ -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,