httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yla...@apache.org
Subject svn commit: r1665385 - in /httpd/httpd/trunk/server/mpm/motorz: motorz.c motorz.h
Date Mon, 09 Mar 2015 23:39:05 GMT
Author: ylavic
Date: Mon Mar  9 23:39:05 2015
New Revision: 1665385

URL: http://svn.apache.org/r1665385
Log:
motorz: revert bogus r1665381.

Modified:
    httpd/httpd/trunk/server/mpm/motorz/motorz.c
    httpd/httpd/trunk/server/mpm/motorz/motorz.h

Modified: httpd/httpd/trunk/server/mpm/motorz/motorz.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/motorz/motorz.c?rev=1665385&r1=1665384&r2=1665385&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/motorz/motorz.c (original)
+++ httpd/httpd/trunk/server/mpm/motorz/motorz.c Mon Mar  9 23:39:05 2015
@@ -81,25 +81,6 @@ static int indexing_compk(void *ac, void
     return ((*t1 < t2) ? -1 : ((*t1 > t2) ? 1 : 0));
 }
 
-static motorz_timer_t *motorz_acquire_timer(motorz_core_t *mz)
-{
-    motorz_timer_t *elem = mz->spare_timers;
-    if (elem) {
-        mz->spare_timers = elem->next;
-    }
-    else {
-        elem = apr_palloc(mz->pool, sizeof *elem);
-    }
-    memset(elem, 0, sizeof *elem);
-    return elem;
-}
-
-static void motorz_release_timer(motorz_core_t *mz, motorz_timer_t *elem)
-{
-    elem->next = mz->spare_timers;
-    mz->spare_timers = elem;;
-}
-
 static apr_status_t motorz_timer_pool_cleanup(void *baton)
 {
     motorz_timer_t *elem = (motorz_timer_t *)baton;
@@ -107,7 +88,6 @@ static apr_status_t motorz_timer_pool_cl
 
     apr_thread_mutex_lock(mz->mtx);
     apr_skiplist_remove(mz->timer_ring, elem, NULL);
-    motorz_release_timer(mz, elem);
     apr_thread_mutex_unlock(mz->mtx);
 
     return APR_SUCCESS;
@@ -217,25 +197,19 @@ static apr_status_t motorz_io_accept(mot
     return APR_SUCCESS;
 }
 
-static void *motorz_timer_invoke(apr_thread_t *thread, void *baton)
+static void motorz_timer_run(motorz_timer_t *ep)
 {
-    motorz_timer_t *ep = (motorz_timer_t *)baton;
-    motorz_conn_t *scon = (motorz_conn_t *) ep->baton;
+    apr_pool_cleanup_kill(ep->pool, ep, motorz_timer_pool_cleanup);
 
-    scon->c->current_thread = thread;
     ep->cb(ep->mz, ep->baton);
-
-    return NULL;
 }
 
-static apr_status_t motorz_timer_event_process(motorz_core_t *mz, motorz_timer_t *te)
+static void *motorz_timer_invoke(apr_thread_t *thread, void *baton)
 {
-    apr_pool_cleanup_kill(te->pool, te, motorz_timer_pool_cleanup);
-    motorz_release_timer(mz, te);
+    motorz_timer_t *ep = (motorz_timer_t *)baton;
 
-    return apr_thread_pool_push(mz->workers,
-                                motorz_timer_invoke,
-                                te, APR_THREAD_TASK_PRIORITY_NORMAL, NULL);
+    motorz_timer_run(ep);
+    return NULL;
 }
 
 static void *motorz_io_invoke(apr_thread_t * thread, void *baton)
@@ -291,7 +265,7 @@ static void motorz_register_timer(motorz
 
     apr_thread_mutex_lock(mz->mtx);
 
-    elem = motorz_acquire_timer(mz);
+    elem = (motorz_timer_t *) apr_pcalloc(shutdown_pool, sizeof(motorz_timer_t));
 
     elem->expires = t;
     elem->cb = cb;
@@ -420,9 +394,9 @@ static apr_status_t motorz_io_process(mo
             motorz_register_timer(scon->mz,
                                   motorz_io_timeout_cb,
                                   scon,
-                                  scon->c->base_server != NULL
-                                  ? scon->c->base_server->keep_alive_timeout
-                                  : ap_server_conf->keep_alive_timeout,
+                                  scon->c->base_server !=
+                                  NULL ? scon->c->base_server->
+                                  timeout : ap_server_conf->timeout,
                                   scon->pool);
 
             scon->pfd.reqevents = (
@@ -564,7 +538,6 @@ static void clean_child_exit(int code)
     exit(code);
 }
 
-#if 0 /* unused for now */
 static apr_status_t accept_mutex_on(void)
 {
     motorz_core_t *mz = motorz_core_get();
@@ -607,7 +580,6 @@ static apr_status_t accept_mutex_off(voi
     }
     return APR_SUCCESS;
 }
-#endif
 
 /* On some architectures it's safe to do unserialized accept()s in the single
  * Listen case.  But it's never safe to do it in the case where there's
@@ -1013,10 +985,16 @@ static void child_main(motorz_core_t *mz
             apr_thread_mutex_lock(mz->mtx);
 
             /* now iterate any timers and push to worker pool */
-            while (te && te->expires < tnow) {
-                apr_skiplist_pop(mz->timer_ring, NULL);
-                motorz_timer_event_process(mz, te);
-
+            while (te) {
+                if (te->expires < tnow) {
+                    apr_skiplist_pop(mz->timer_ring, NULL);
+                    apr_thread_pool_push(mz->workers,
+                                         motorz_timer_invoke,
+                                         te,
+                                         APR_THREAD_TASK_PRIORITY_NORMAL, NULL);
+                } else {
+                    break;
+                }
                 te = apr_skiplist_peek(mz->timer_ring);
             }
 

Modified: httpd/httpd/trunk/server/mpm/motorz/motorz.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/motorz/motorz.h?rev=1665385&r1=1665384&r2=1665385&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/motorz/motorz.h (original)
+++ httpd/httpd/trunk/server/mpm/motorz/motorz.h Mon Mar  9 23:39:05 2015
@@ -109,9 +109,6 @@
 /**
  * typedefs
  */
-struct motorz_timer_t;
-typedef struct motorz_timer_t motorz_timer_t;
-
 /* data retained by prefork across load/unload of the module
  * allocated on first call to pre-config hook; located on
  * subsequent calls to pre-config hook
@@ -134,7 +131,6 @@ struct motorz_core_t {
     apr_pollset_t *pollset;
     apr_skiplist *timer_ring;
     apr_thread_pool_t *workers;
-    motorz_timer_t *spare_timers;
 };
 
 typedef struct motorz_child_bucket motorz_child_bucket;
@@ -165,6 +161,7 @@ typedef void (*motorz_io_file_cb) (motor
                                    int flags, void *baton);
 
 
+typedef struct motorz_timer_t motorz_timer_t;
 struct motorz_timer_t
 {
     apr_time_t expires;
@@ -172,7 +169,6 @@ struct motorz_timer_t
     void *baton;
     apr_pool_t *pool;
     motorz_core_t *mz;
-    motorz_timer_t *next;
 };
 
 typedef struct motorz_conn_t motorz_conn_t;



Mime
View raw message