Mercurial > hg > nginx
comparison src/event/modules/ngx_poll_module.c @ 179:9f3a78b06c48
nginx-0.0.1-2003-11-11-21:13:43 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 11 Nov 2003 18:13:43 +0000 |
parents | a8ff48d26cca |
children | 2357fa41738a |
comparison
equal
deleted
inserted
replaced
178:a8ff48d26cca | 179:9f3a78b06c48 |
---|---|
222 | 222 |
223 static int ngx_poll_process_events(ngx_log_t *log) | 223 static int ngx_poll_process_events(ngx_log_t *log) |
224 { | 224 { |
225 int ready, found, j; | 225 int ready, found, j; |
226 u_int nready, i; | 226 u_int nready, i; |
227 ngx_msec_t timer, delta; | 227 ngx_msec_t timer; |
228 ngx_err_t err; | 228 ngx_err_t err; |
229 ngx_cycle_t **cycle; | 229 ngx_cycle_t **cycle; |
230 ngx_event_t *ev; | 230 ngx_event_t *ev; |
231 ngx_epoch_msec_t delta; | |
231 ngx_connection_t *c; | 232 ngx_connection_t *c; |
233 struct timeval tv; | |
232 | 234 |
233 timer = ngx_event_find_timer(); | 235 timer = ngx_event_find_timer(); |
234 | 236 |
235 if (timer) { | 237 if (timer) { |
236 delta = ngx_msec(); | 238 ngx_gettimeofday(&tv); |
239 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; | |
237 | 240 |
238 } else { | 241 } else { |
239 timer = INFTIM; | 242 timer = INFTIM; |
240 delta = 0; | 243 delta = 0; |
241 } | 244 } |
257 err = 0; | 260 err = 0; |
258 } | 261 } |
259 | 262 |
260 ngx_log_debug(log, "poll ready %d" _ ready); | 263 ngx_log_debug(log, "poll ready %d" _ ready); |
261 | 264 |
262 /* TODO: time */ | 265 ngx_gettimeofday(&tv); |
266 | |
267 if (ngx_cached_time != tv.tv_sec) { | |
268 ngx_cached_time = tv.tv_sec; | |
269 ngx_time_update(); | |
270 } | |
263 | 271 |
264 if ((int) timer != INFTIM) { | 272 if ((int) timer != INFTIM) { |
265 delta = ngx_msec() - delta; | 273 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta; |
266 | 274 |
267 #if (NGX_DEBUG_EVENT) | 275 #if (NGX_DEBUG_EVENT) |
268 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ delta); | 276 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ (int) delta); |
269 #endif | 277 #endif |
270 ngx_event_expire_timers(delta); | 278 ngx_event_expire_timers((ngx_msec_t) delta); |
271 | 279 |
272 } else { | 280 } else { |
273 if (ready == 0) { | 281 if (ready == 0) { |
274 ngx_log_error(NGX_LOG_ALERT, log, 0, | 282 ngx_log_error(NGX_LOG_ALERT, log, 0, |
275 "poll() returned no events without timeout"); | 283 "poll() returned no events without timeout"); |
276 return NGX_ERROR; | 284 return NGX_ERROR; |
277 } | 285 } |
278 | 286 |
279 #if (NGX_DEBUG_EVENT) | 287 #if (NGX_DEBUG_EVENT) |
280 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ delta); | 288 ngx_log_debug(log, "poll timer: %d, delta: %d" _ timer _ (int) delta); |
281 #endif | 289 #endif |
282 } | 290 } |
283 | 291 |
284 if (err) { | 292 if (err) { |
285 ngx_log_error(NGX_LOG_ALERT, log, err, "poll() failed"); | 293 ngx_log_error(NGX_LOG_ALERT, log, err, "poll() failed"); |