comparison src/event/modules/ngx_kqueue_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 c1f3a3c7c5db
comparison
equal deleted inserted replaced
178:a8ff48d26cca 179:9f3a78b06c48
309 } 309 }
310 310
311 311
312 static int ngx_kqueue_process_events(ngx_log_t *log) 312 static int ngx_kqueue_process_events(ngx_log_t *log)
313 { 313 {
314 int events, instance, i; 314 int events, instance, i;
315 ngx_err_t err; 315 ngx_err_t err;
316 ngx_msec_t timer, delta; 316 ngx_msec_t timer;
317 ngx_event_t *ev; 317 ngx_event_t *ev;
318 struct timeval tv; 318 ngx_epoch_msec_t delta;
319 struct timespec ts, *tp; 319 struct timeval tv;
320 struct timespec ts, *tp;
320 321
321 timer = ngx_event_find_timer(); 322 timer = ngx_event_find_timer();
322 323
323 if (timer) { 324 if (timer) {
324 ts.tv_sec = timer / 1000; 325 ts.tv_sec = timer / 1000;
325 ts.tv_nsec = (timer % 1000) * 1000000; 326 ts.tv_nsec = (timer % 1000) * 1000000;
326 tp = &ts; 327 tp = &ts;
327 gettimeofday(&tv, NULL); 328
329 ngx_gettimeofday(&tv);
328 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; 330 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000;
329 331
330 } else { 332 } else {
331 timer = 0;
332 delta = 0; 333 delta = 0;
333 tp = NULL; 334 tp = NULL;
334 } 335 }
335 336
336 #if (NGX_DEBUG_EVENT) 337 #if (NGX_DEBUG_EVENT)
345 err = 0; 346 err = 0;
346 } 347 }
347 348
348 nchanges = 0; 349 nchanges = 0;
349 350
350 gettimeofday(&tv, NULL); 351 ngx_gettimeofday(&tv);
351 352
352 if (ngx_cached_time != tv.tv_sec) { 353 if (ngx_cached_time != tv.tv_sec) {
353 ngx_cached_time = tv.tv_sec; 354 ngx_cached_time = tv.tv_sec;
354 ngx_time_update(); 355 ngx_time_update();
355 } 356 }
356 357
357 if (timer) { 358 if (timer) {
358 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta; 359 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
359 360
360 #if (NGX_DEBUG_EVENT) 361 #if (NGX_DEBUG_EVENT)
361 ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ delta); 362 ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ (int) delta);
362 #endif 363 #endif
363 364
364 /* 365 /*
365 * The expired timers must be handled before a processing of the events 366 * The expired timers must be handled before a processing of the events
366 * because the new timers can be added during a processing 367 * because the new timers can be added during a processing
367 */ 368 */
368 369
369 ngx_event_expire_timers(delta); 370 ngx_event_expire_timers((ngx_msec_t) delta);
370 371
371 } else { 372 } else {
372 if (events == 0) { 373 if (events == 0) {
373 ngx_log_error(NGX_LOG_ALERT, log, 0, 374 ngx_log_error(NGX_LOG_ALERT, log, 0,
374 "kevent() returned no events without timeout"); 375 "kevent() returned no events without timeout");
375 return NGX_ERROR; 376 return NGX_ERROR;
376 } 377 }
377 378
378 #if (NGX_DEBUG_EVENT) 379 #if (NGX_DEBUG_EVENT)
379 ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ delta); 380 ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ (int) delta);
380 #endif 381 #endif
381 } 382 }
382 383
383 if (err) { 384 if (err) {
384 ngx_log_error(NGX_LOG_ALERT, log, err, "kevent() failed"); 385 ngx_log_error(NGX_LOG_ALERT, log, err, "kevent() failed");