Mercurial > hg > nginx
comparison src/event/ngx_event_timer.c @ 272:d4e65d74db9f
nginx-0.0.2-2004-03-01-00:03:02 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 29 Feb 2004 21:03:02 +0000 |
parents | 7bb9562216ce |
children | b836469c37c3 |
comparison
equal
deleted
inserted
replaced
271:e16dfb9b9afa | 272:d4e65d74db9f |
---|---|
7 #if (NGX_THREADS) | 7 #if (NGX_THREADS) |
8 ngx_mutex_t *ngx_event_timer_mutex; | 8 ngx_mutex_t *ngx_event_timer_mutex; |
9 #endif | 9 #endif |
10 | 10 |
11 | 11 |
12 ngx_rbtree_t *ngx_event_timer_rbtree; | 12 volatile ngx_rbtree_t *ngx_event_timer_rbtree; |
13 ngx_rbtree_t ngx_event_timer_sentinel; | 13 ngx_rbtree_t ngx_event_timer_sentinel; |
14 | 14 |
15 | 15 |
16 ngx_int_t ngx_event_timer_init(ngx_log_t *log) | 16 ngx_int_t ngx_event_timer_init(ngx_log_t *log) |
17 { | 17 { |
18 if (ngx_event_timer_rbtree) { | 18 if (ngx_event_timer_rbtree) { |
19 #if (NGX_THREADS) | |
19 ngx_event_timer_mutex->log = log; | 20 ngx_event_timer_mutex->log = log; |
21 #endif | |
20 return NGX_OK; | 22 return NGX_OK; |
21 } | 23 } |
22 | 24 |
23 ngx_event_timer_rbtree = &ngx_event_timer_sentinel; | 25 ngx_event_timer_rbtree = &ngx_event_timer_sentinel; |
24 | 26 |
27 #if (NGX_THREADS) | |
25 if (!(ngx_event_timer_mutex = ngx_mutex_init(log, 0))) { | 28 if (!(ngx_event_timer_mutex = ngx_mutex_init(log, 0))) { |
26 return NGX_ERROR; | 29 return NGX_ERROR; |
27 } | 30 } |
31 #endif | |
28 | 32 |
29 return NGX_OK; | 33 return NGX_OK; |
30 } | 34 } |
31 | 35 |
32 | 36 |
42 if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) { | 46 if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) { |
43 return NGX_TIMER_ERROR; | 47 return NGX_TIMER_ERROR; |
44 } | 48 } |
45 #endif | 49 #endif |
46 | 50 |
47 node = ngx_rbtree_min(ngx_event_timer_rbtree, &ngx_event_timer_sentinel); | 51 node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree, |
52 &ngx_event_timer_sentinel); | |
48 | 53 |
49 #if (NGX_THREADS) | 54 #if (NGX_THREADS) |
50 ngx_mutex_unlock(ngx_event_timer_mutex); | 55 ngx_mutex_unlock(ngx_event_timer_mutex); |
51 #endif | 56 #endif |
52 | 57 |
74 if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) { | 79 if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) { |
75 return; | 80 return; |
76 } | 81 } |
77 #endif | 82 #endif |
78 | 83 |
79 node = ngx_rbtree_min(ngx_event_timer_rbtree, | 84 node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree, |
80 &ngx_event_timer_sentinel); | 85 &ngx_event_timer_sentinel); |
81 | 86 |
82 #if (NGX_THREADS) | 87 #if (NGX_THREADS) |
83 ngx_mutex_unlock(ngx_event_timer_mutex); | 88 ngx_mutex_unlock(ngx_event_timer_mutex); |
84 #endif | 89 #endif |