Mercurial > hg > nginx
comparison src/event/ngx_event_timer.h @ 563:9c2f3ed7a247 release-0.3.3
nginx-0.3.3-RELEASE import
*) 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; the bug had 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 <igor@sysoev.ru> |
---|---|
date | Wed, 19 Oct 2005 12:33:58 +0000 |
parents | e48ebafc6939 |
children | 1739becf3f83 |
comparison
equal
deleted
inserted
replaced
562:4b6108f69026 | 563:9c2f3ed7a247 |
---|---|
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 |