comparison src/event/ngx_event_timer.h @ 112:408f195b3482 NGINX_0_3_3

nginx 0.3.3 *) Change: the "bl" and "af" parameters of the "listen" directive was renamed to the "backlog" and "accept_filter". *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directive. *) Change: the "$msec" log parameter does not require now the additional the gettimeofday() system call. *) Feature: the -t switch now tests the "listen" directives. *) Bugfix: if the invalid address was specified in the "listen" directive, then after the -HUP signal nginx left an open socket in the CLOSED state. *) Bugfix: the mime type may be incorrectly set to default value for index file with variable in the name; bug appeared in 0.3.0. *) Feature: the "timer_resolution" directive. *) Feature: the millisecond "$upstream_response_time" log parameter. *) Bugfix: a temporary file with client request body now is removed just after the response header was transferred to a client. *) Bugfix: OpenSSL 0.9.6 compatibility. *) Bugfix: the SSL certificate and key file paths could not be relative. *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the ngx_imap_ssl_module. *) Bugfix: the "ssl_protocols" directive allowed to specify the single protocol only.
author Igor Sysoev <http://sysoev.ru>
date Wed, 19 Oct 2005 00:00:00 +0400
parents dad2fe8ecf08
children 54fad6c4b555
comparison
equal deleted inserted replaced
111:a175b609c76d 112:408f195b3482
12 #include <ngx_core.h> 12 #include <ngx_core.h>
13 #include <ngx_event.h> 13 #include <ngx_event.h>
14 14
15 15
16 #define NGX_TIMER_INFINITE (ngx_msec_t) -1 16 #define NGX_TIMER_INFINITE (ngx_msec_t) -1
17 #define NGX_TIMER_ERROR (ngx_msec_t) -2
18 17
19 #define NGX_TIMER_LAZY_DELAY 300 18 #define NGX_TIMER_LAZY_DELAY 300
20 19
21 20
22 ngx_int_t ngx_event_timer_init(ngx_log_t *log); 21 ngx_int_t ngx_event_timer_init(ngx_log_t *log);
37 { 36 {
38 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, 37 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
39 "event timer del: %d: %M", 38 "event timer del: %d: %M",
40 ngx_event_ident(ev->data), ev->timer.key); 39 ngx_event_ident(ev->data), ev->timer.key);
41 40
42 if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) { 41 ngx_mutex_lock(ngx_event_timer_mutex);
43 return;
44 }
45 42
46 ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer); 43 ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer);
47 44
48 ngx_mutex_unlock(ngx_event_timer_mutex); 45 ngx_mutex_unlock(ngx_event_timer_mutex);
49 46
61 ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) 58 ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
62 { 59 {
63 ngx_msec_t key; 60 ngx_msec_t key;
64 ngx_msec_int_t diff; 61 ngx_msec_int_t diff;
65 62
66 key = ngx_current_time + timer; 63 key = ngx_current_msec + timer;
67 64
68 if (ev->timer_set) { 65 if (ev->timer_set) {
69 66
70 /* 67 /*
71 * Use the previous timer value if a difference between them is less 68 * Use the previous timer value if a difference between them is less
89 86
90 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0, 87 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0,
91 "event timer add: %d: %M:%M", 88 "event timer add: %d: %M:%M",
92 ngx_event_ident(ev->data), timer, ev->timer.key); 89 ngx_event_ident(ev->data), timer, ev->timer.key);
93 90
94 if (ngx_mutex_lock(ngx_event_timer_mutex) == NGX_ERROR) { 91 ngx_mutex_lock(ngx_event_timer_mutex);
95 return;
96 }
97 92
98 ngx_rbtree_insert(&ngx_event_timer_rbtree, &ev->timer); 93 ngx_rbtree_insert(&ngx_event_timer_rbtree, &ev->timer);
99 94
100 ngx_mutex_unlock(ngx_event_timer_mutex); 95 ngx_mutex_unlock(ngx_event_timer_mutex);
101 96