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