Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-04-05 00:32:09 +0400
committerIgor Sysoev <igor@sysoev.ru>2004-04-05 00:32:09 +0400
commit9a864bd8f87efd0fa23f552d4277475dd76bcea4 (patch)
tree748c76cb067e50ae033389a0590fee8b4d76d222 /src/event/ngx_event_timer.c
parentc972a3fe2774c329cd64fdaf36f51e28a130bf4c (diff)
nginx-0.0.3-2004-04-05-00:32:09 import
Diffstat (limited to 'src/event/ngx_event_timer.c')
-rw-r--r--src/event/ngx_event_timer.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
index 79a2e195d..b66241b66 100644
--- a/src/event/ngx_event_timer.c
+++ b/src/event/ngx_event_timer.c
@@ -42,18 +42,14 @@ ngx_msec_t ngx_event_find_timer(void)
return 0;
}
-#if (NGX_THREADS)
if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) {
return NGX_TIMER_ERROR;
}
-#endif
node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree,
&ngx_event_timer_sentinel);
-#if (NGX_THREADS)
ngx_mutex_unlock(ngx_event_timer_mutex);
-#endif
return (ngx_msec_t)
(node->key * NGX_TIMER_RESOLUTION -
@@ -75,18 +71,14 @@ void ngx_event_expire_timers(ngx_msec_t timer)
break;
}
-#if (NGX_THREADS)
if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) {
return;
}
-#endif
node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree,
&ngx_event_timer_sentinel);
-#if (NGX_THREADS)
ngx_mutex_unlock(ngx_event_timer_mutex);
-#endif
if ((ngx_msec_t) node->key <= (ngx_msec_t)
(ngx_old_elapsed_msec + timer) / NGX_TIMER_RESOLUTION)
@@ -106,9 +98,16 @@ void ngx_event_expire_timers(ngx_msec_t timer)
ev->timedout = 1;
}
-#if (NGX_THREADS)
- /* STUB: post event */
-#endif
+ if (ngx_threaded) {
+ if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
+ return;
+ }
+
+ ngx_post_event(ev);
+
+ ngx_mutex_unlock(ngx_posted_events_mutex);
+ continue;
+ }
ev->event_handler(ev);
continue;