comparison src/event/ngx_event.c @ 116:e38f51cd0905 NGINX_0_3_5

nginx 0.3.5 *) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login was changed by authorization server; bug appeared in 0.2.2. *) Bugfix: the accept mutex did not work and all connections were handled by one process; bug appeared in 0.3.3. *) Bugfix: the timeout did not work if the "rtsig" method and the "timer_resolution" directive were used.
author Igor Sysoev <http://sysoev.ru>
date Fri, 21 Oct 2005 00:00:00 +0400
parents 408f195b3482
children d25a1d6034f1
comparison
equal deleted inserted replaced
115:45a230988aa5 116:e38f51cd0905
197 197
198 void 198 void
199 ngx_process_events_and_timers(ngx_cycle_t *cycle) 199 ngx_process_events_and_timers(ngx_cycle_t *cycle)
200 { 200 {
201 ngx_uint_t flags; 201 ngx_uint_t flags;
202 ngx_msec_t timer; 202 ngx_msec_t timer, delta;
203 203
204 if (ngx_timer_resolution) { 204 if (ngx_timer_resolution) {
205 timer = NGX_TIMER_INFINITE; 205 timer = NGX_TIMER_INFINITE;
206 flags = 0; 206 flags = 0;
207 207
238 } 238 }
239 } 239 }
240 } 240 }
241 } 241 }
242 242
243 delta = ngx_current_msec;
244
243 (void) ngx_process_events(cycle, timer, flags); 245 (void) ngx_process_events(cycle, timer, flags);
244 246
245 ngx_event_expire_timers(); 247 delta = ngx_current_msec - delta;
248
249 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
250 "timer delta: %M", delta);
251
252 if (delta) {
253 ngx_event_expire_timers();
254 }
246 255
247 if (ngx_posted_accept_events) { 256 if (ngx_posted_accept_events) {
248 ngx_event_process_posted(cycle, &ngx_posted_accept_events); 257 ngx_event_process_posted(cycle, &ngx_posted_accept_events);
249 } 258 }
250 259
251 if (ngx_accept_mutex_held) { 260 if (ngx_accept_mutex_held) {
252 ngx_accept_mutex = 0; 261 *ngx_accept_mutex = 0;
253 } 262 }
254 263
255 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 264 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
256 "posted events %p", ngx_posted_events); 265 "posted events %p", ngx_posted_events);
257 266