]> git.kaiwu.me - nginx.git/commitdiff
Events: removed broken thread support from event timers.
authorValentin Bartenev <vbart@nginx.com>
Mon, 25 Aug 2014 09:34:39 +0000 (13:34 +0400)
committerValentin Bartenev <vbart@nginx.com>
Mon, 25 Aug 2014 09:34:39 +0000 (13:34 +0400)
It's mostly dead code.  And the idea of thread support for this task has
been deprecated.

src/core/ngx_rbtree.c
src/core/ngx_rbtree.h
src/event/ngx_event_timer.c
src/event/ngx_event_timer.h
src/os/unix/ngx_process_cycle.c

index 914ca7e884b06b2ebbdc801ff6590923b6744168..6c66f4061b23c2f046f606201bdea1d03bb293c2 100644 (file)
@@ -22,8 +22,7 @@ static ngx_inline void ngx_rbtree_right_rotate(ngx_rbtree_node_t **root,
 
 
 void
-ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree,
-    ngx_rbtree_node_t *node)
+ngx_rbtree_insert(ngx_rbtree_t *tree, ngx_rbtree_node_t *node)
 {
     ngx_rbtree_node_t  **root, *temp, *sentinel;
 
@@ -155,8 +154,7 @@ ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node,
 
 
 void
-ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree,
-    ngx_rbtree_node_t *node)
+ngx_rbtree_delete(ngx_rbtree_t *tree, ngx_rbtree_node_t *node)
 {
     ngx_uint_t           red;
     ngx_rbtree_node_t  **root, *sentinel, *subst, *temp, *w;
index 6e47a5bbbaa8868038664705407ef8152f5ccce3..1d33e3f6e066570b28ec955a509ebf38b8a075ef 100644 (file)
@@ -48,10 +48,8 @@ struct ngx_rbtree_s {
     (tree)->insert = i
 
 
-void ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree,
-    ngx_rbtree_node_t *node);
-void ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree,
-    ngx_rbtree_node_t *node);
+void ngx_rbtree_insert(ngx_rbtree_t *tree, ngx_rbtree_node_t *node);
+void ngx_rbtree_delete(ngx_rbtree_t *tree, ngx_rbtree_node_t *node);
 void ngx_rbtree_insert_value(ngx_rbtree_node_t *root, ngx_rbtree_node_t *node,
     ngx_rbtree_node_t *sentinel);
 void ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *root,
index 1075586497d0a4f5f9154ec4865f195ad2c8182f..db43e26e75ed0eb68e8223212c4d01f1f6e738e4 100644 (file)
 #include <ngx_event.h>
 
 
-#if (NGX_THREADS)
-ngx_mutex_t  *ngx_event_timer_mutex;
-#endif
-
-
-ngx_thread_volatile ngx_rbtree_t  ngx_event_timer_rbtree;
-static ngx_rbtree_node_t          ngx_event_timer_sentinel;
+ngx_rbtree_t              ngx_event_timer_rbtree;
+static ngx_rbtree_node_t  ngx_event_timer_sentinel;
 
 /*
  * the event timer rbtree may contain the duplicate keys, however,
@@ -30,20 +25,6 @@ ngx_event_timer_init(ngx_log_t *log)
     ngx_rbtree_init(&ngx_event_timer_rbtree, &ngx_event_timer_sentinel,
                     ngx_rbtree_insert_timer_value);
 
-#if (NGX_THREADS)
-
-    if (ngx_event_timer_mutex) {
-        ngx_event_timer_mutex->log = log;
-        return NGX_OK;
-    }
-
-    ngx_event_timer_mutex = ngx_mutex_init(log, 0);
-    if (ngx_event_timer_mutex == NULL) {
-        return NGX_ERROR;
-    }
-
-#endif
-
     return NGX_OK;
 }
 
@@ -58,15 +39,11 @@ ngx_event_find_timer(void)
         return NGX_TIMER_INFINITE;
     }
 
-    ngx_mutex_lock(ngx_event_timer_mutex);
-
     root = ngx_event_timer_rbtree.root;
     sentinel = ngx_event_timer_rbtree.sentinel;
 
     node = ngx_rbtree_min(root, sentinel);
 
-    ngx_mutex_unlock(ngx_event_timer_mutex);
-
     timer = (ngx_msec_int_t) (node->key - ngx_current_msec);
 
     return (ngx_msec_t) (timer > 0 ? timer : 0);
@@ -82,9 +59,6 @@ ngx_event_expire_timers(void)
     sentinel = ngx_event_timer_rbtree.sentinel;
 
     for ( ;; ) {
-
-        ngx_mutex_lock(ngx_event_timer_mutex);
-
         root = ngx_event_timer_rbtree.root;
 
         if (root == sentinel) {
@@ -104,8 +78,6 @@ ngx_event_expire_timers(void)
 
             ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer);
 
-            ngx_mutex_unlock(ngx_event_timer_mutex);
-
 #if (NGX_DEBUG)
             ev->timer.left = NULL;
             ev->timer.right = NULL;
@@ -123,6 +95,4 @@ ngx_event_expire_timers(void)
 
         break;
     }
-
-    ngx_mutex_unlock(ngx_event_timer_mutex);
 }
index ec9b316bdc8bd5b75381a9b0e635cfa18ea9e6db..df55d3cd6f73cd352f5974e0bb39efa283cd6266 100644 (file)
@@ -24,12 +24,7 @@ ngx_msec_t ngx_event_find_timer(void);
 void ngx_event_expire_timers(void);
 
 
-#if (NGX_THREADS)
-extern ngx_mutex_t  *ngx_event_timer_mutex;
-#endif
-
-
-extern ngx_thread_volatile ngx_rbtree_t  ngx_event_timer_rbtree;
+extern ngx_rbtree_t  ngx_event_timer_rbtree;
 
 
 static ngx_inline void
@@ -39,12 +34,8 @@ ngx_event_del_timer(ngx_event_t *ev)
                    "event timer del: %d: %M",
                     ngx_event_ident(ev->data), ev->timer.key);
 
-    ngx_mutex_lock(ngx_event_timer_mutex);
-
     ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer);
 
-    ngx_mutex_unlock(ngx_event_timer_mutex);
-
 #if (NGX_DEBUG)
     ev->timer.left = NULL;
     ev->timer.right = NULL;
@@ -89,12 +80,8 @@ ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
                    "event timer add: %d: %M:%M",
                     ngx_event_ident(ev->data), timer, ev->timer.key);
 
-    ngx_mutex_lock(ngx_event_timer_mutex);
-
     ngx_rbtree_insert(&ngx_event_timer_rbtree, &ev->timer);
 
-    ngx_mutex_unlock(ngx_event_timer_mutex);
-
     ev->timer_set = 1;
 }
 
index 6c84ba8bd892e397f9f8ade3780c0ddbbf6b01b3..196394488e015320d67c72f5f20406b84c5123f9 100644 (file)
@@ -1213,7 +1213,6 @@ ngx_wakeup_worker_threads(ngx_cycle_t *cycle)
 
             /* STUB */
             ngx_done_events(cycle);
-            ngx_mutex_destroy(ngx_event_timer_mutex);
 
             return;
         }