Mercurial > hg > nginx
comparison src/event/ngx_event.c @ 5821:3f5f0ab59b35
Events: processing of posted events changed from LIFO to FIFO.
In theory, this can provide a bit better distribution of latencies.
Also it simplifies the code, since ngx_queue_t is now used instead
of custom implementation.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Mon, 01 Sep 2014 18:20:18 +0400 |
parents | 3377f9459e99 |
children | 457ec43dd8d5 |
comparison
equal
deleted
inserted
replaced
5820:3377f9459e99 | 5821:3f5f0ab59b35 |
---|---|
250 delta = ngx_current_msec - delta; | 250 delta = ngx_current_msec - delta; |
251 | 251 |
252 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | 252 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, |
253 "timer delta: %M", delta); | 253 "timer delta: %M", delta); |
254 | 254 |
255 if (ngx_posted_accept_events) { | 255 ngx_event_process_posted(cycle, &ngx_posted_accept_events); |
256 ngx_event_process_posted(cycle, &ngx_posted_accept_events); | |
257 } | |
258 | 256 |
259 if (ngx_accept_mutex_held) { | 257 if (ngx_accept_mutex_held) { |
260 ngx_shmtx_unlock(&ngx_accept_mutex); | 258 ngx_shmtx_unlock(&ngx_accept_mutex); |
261 } | 259 } |
262 | 260 |
263 if (delta) { | 261 if (delta) { |
264 ngx_event_expire_timers(); | 262 ngx_event_expire_timers(); |
265 } | 263 } |
266 | 264 |
267 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | 265 ngx_event_process_posted(cycle, &ngx_posted_events); |
268 "posted events %p", ngx_posted_events); | |
269 | |
270 if (ngx_posted_events) { | |
271 ngx_event_process_posted(cycle, &ngx_posted_events); | |
272 } | |
273 } | 266 } |
274 | 267 |
275 | 268 |
276 ngx_int_t | 269 ngx_int_t |
277 ngx_handle_read_event(ngx_event_t *rev, ngx_uint_t flags) | 270 ngx_handle_read_event(ngx_event_t *rev, ngx_uint_t flags) |
609 */ | 602 */ |
610 | 603 |
611 ngx_use_accept_mutex = 0; | 604 ngx_use_accept_mutex = 0; |
612 | 605 |
613 #endif | 606 #endif |
607 | |
608 ngx_queue_init(&ngx_posted_accept_events); | |
609 ngx_queue_init(&ngx_posted_events); | |
614 | 610 |
615 if (ngx_event_timer_init(cycle->log) == NGX_ERROR) { | 611 if (ngx_event_timer_init(cycle->log) == NGX_ERROR) { |
616 return NGX_ERROR; | 612 return NGX_ERROR; |
617 } | 613 } |
618 | 614 |