comparison src/event/modules/ngx_kqueue_module.c @ 245:e6c005b66b3a

nginx-0.0.1-2004-01-30-00:45:01 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 29 Jan 2004 21:45:01 +0000
parents 5d4f49dc8de5
children 6753e8cdaa2c
comparison
equal deleted inserted replaced
244:187dc0a3197d 245:e6c005b66b3a
337 } 337 }
338 338
339 339
340 static int ngx_kqueue_process_events(ngx_log_t *log) 340 static int ngx_kqueue_process_events(ngx_log_t *log)
341 { 341 {
342 ngx_int_t events, instance, i; 342 int events;
343 ngx_int_t instance, i;
343 ngx_err_t err; 344 ngx_err_t err;
344 ngx_msec_t timer; 345 ngx_msec_t timer;
345 ngx_event_t *ev; 346 ngx_event_t *ev;
346 ngx_epoch_msec_t delta; 347 ngx_epoch_msec_t delta;
347 struct timeval tv; 348 struct timeval tv;
353 if (timer) { 354 if (timer) {
354 ts.tv_sec = timer / 1000; 355 ts.tv_sec = timer / 1000;
355 ts.tv_nsec = (timer % 1000) * 1000000; 356 ts.tv_nsec = (timer % 1000) * 1000000;
356 tp = &ts; 357 tp = &ts;
357 358
358 #if 0
359 ngx_gettimeofday(&tv);
360 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000;
361 #endif
362
363 } else { 359 } else {
364 delta = 0;
365 tp = NULL; 360 tp = NULL;
366 } 361 }
367 362
368 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "kevent timer: %d", timer); 363 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0, "kevent timer: %d", timer);
369 364
376 } 371 }
377 372
378 nchanges = 0; 373 nchanges = 0;
379 374
380 ngx_gettimeofday(&tv); 375 ngx_gettimeofday(&tv);
381 376 ngx_time_update(tv.tv_sec);
382 #if 1 377
383 delta = ngx_elapsed_msec; 378 delta = ngx_elapsed_msec;
384 #endif
385 ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec; 379 ngx_elapsed_msec = tv.tv_sec * 1000 + tv.tv_usec / 1000 - ngx_start_msec;
386
387 ngx_time_update(tv.tv_sec);
388 380
389 if (timer) { 381 if (timer) {
390 delta = ngx_elapsed_msec - delta; 382 delta = ngx_elapsed_msec - delta;
383
384 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
385 "kevent timer: %d, delta: %d", timer, (int) delta);
391 386
392 } else { 387 } else {
393 if (events == 0) { 388 if (events == 0) {
394 ngx_log_error(NGX_LOG_ALERT, log, 0, 389 ngx_log_error(NGX_LOG_ALERT, log, 0,
395 "kevent() returned no events without timeout"); 390 "kevent() returned no events without timeout");
396 return NGX_ERROR; 391 return NGX_ERROR;
397 } 392 }
398 } 393 }
399 394
400 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
401 "kevent timer: %d, delta: %d", timer, (int) delta);
402
403 if (err) { 395 if (err) {
404 ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT, 396 ngx_log_error((err == NGX_EINTR) ? NGX_LOG_INFO : NGX_LOG_ALERT,
405 log, err, "kevent() failed"); 397 log, err, "kevent() failed");
406 return NGX_ERROR; 398 return NGX_ERROR;
407 } 399 }
494 486
495 return NGX_OK; 487 return NGX_OK;
496 } 488 }
497 489
498 490
499 #if 0
500
501 static void ngx_kqueue_thread_handler(ngx_event_t *ev, ngx_log_t *log)
502 {
503 ngx_int_t instance;
504
505 instance = (uintptr_t) ev & 1;
506 ev = (ngx_event_t *) ((uintptr_t) ev & (uintptr_t) ~1);
507
508 if (ev->active && ev->instance == instance) {
509 ev->event_handler(ev);
510 return;
511 }
512
513 /*
514 * it's a stale event from a file descriptor
515 * that was just closed in this iteration
516 */
517
518 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
519 "kevent: stale event " PTR_FMT, ev);
520
521 }
522
523 #endif
524
525
526 static void *ngx_kqueue_create_conf(ngx_cycle_t *cycle) 491 static void *ngx_kqueue_create_conf(ngx_cycle_t *cycle)
527 { 492 {
528 ngx_kqueue_conf_t *kcf; 493 ngx_kqueue_conf_t *kcf;
529 494
530 ngx_test_null(kcf, ngx_palloc(cycle->pool, sizeof(ngx_kqueue_conf_t)), 495 ngx_test_null(kcf, ngx_palloc(cycle->pool, sizeof(ngx_kqueue_conf_t)),