Mercurial > hg > nginx
comparison src/event/modules/ngx_kqueue_module.c @ 305:4b1a3a4acc60
nginx-0.0.3-2004-04-02-19:13:20 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 02 Apr 2004 15:13:20 +0000 |
parents | 00c5660d2707 |
children | 6b91bfbc4123 |
comparison
equal
deleted
inserted
replaced
304:bcbe876f4262 | 305:4b1a3a4acc60 |
---|---|
344 | 344 |
345 | 345 |
346 static ngx_int_t ngx_kqueue_process_events(ngx_cycle_t *cycle) | 346 static ngx_int_t ngx_kqueue_process_events(ngx_cycle_t *cycle) |
347 { | 347 { |
348 int events; | 348 int events; |
349 ngx_int_t i, instance; | 349 ngx_int_t i; |
350 ngx_uint_t instance; | |
350 ngx_err_t err; | 351 ngx_err_t err; |
351 ngx_msec_t timer; | 352 ngx_msec_t timer; |
352 ngx_event_t *ev; | 353 ngx_event_t *ev; |
353 ngx_epoch_msec_t delta; | 354 ngx_epoch_msec_t delta; |
354 struct timeval tv; | 355 struct timeval tv; |
515 event_list[i].filter); | 516 event_list[i].filter); |
516 continue; | 517 continue; |
517 } | 518 } |
518 | 519 |
519 | 520 |
520 #if 0 | 521 if (ngx_threaded || ngx_accept_mutex_held) { |
521 if (ngx_threaded || ngx_accept_token) { | |
522 #endif | |
523 if (ngx_accept_mutex_held) { | |
524 | 522 |
525 if (ev->accept) { | 523 if (ev->accept) { |
526 ngx_mutex_unlock(ngx_posted_events_mutex); | 524 ngx_mutex_unlock(ngx_posted_events_mutex); |
527 | 525 |
528 ev->event_handler(ev); | 526 ev->event_handler(ev); |
531 ngx_accept_mutex_unlock(); | 529 ngx_accept_mutex_unlock(); |
532 return NGX_ERROR; | 530 return NGX_ERROR; |
533 } | 531 } |
534 | 532 |
535 } else { | 533 } else { |
536 ev->next = ngx_posted_events; | 534 ev->next = (ngx_event_t *) ngx_posted_events; |
537 ngx_posted_events = ev; | 535 ngx_posted_events = ev; |
538 } | 536 } |
539 | 537 |
540 continue; | 538 continue; |
541 } | 539 } |
549 | 547 |
550 if (timer && delta) { | 548 if (timer && delta) { |
551 ngx_event_expire_timers((ngx_msec_t) delta); | 549 ngx_event_expire_timers((ngx_msec_t) delta); |
552 } | 550 } |
553 | 551 |
554 #if (NGX_THREADS) | |
555 if (ngx_threaded) { | 552 if (ngx_threaded) { |
556 return NGX_OK; | 553 return NGX_OK; |
557 } | 554 } |
558 #endif | |
559 | 555 |
560 for ( ;; ) { | 556 for ( ;; ) { |
561 | 557 |
562 ev = (ngx_event_t *) ngx_posted_events; | 558 ev = (ngx_event_t *) ngx_posted_events; |
563 | 559 |
596 | 592 |
597 #if (NGX_THREADS) | 593 #if (NGX_THREADS) |
598 | 594 |
599 static void ngx_kqueue_thread_handler(ngx_event_t *ev) | 595 static void ngx_kqueue_thread_handler(ngx_event_t *ev) |
600 { | 596 { |
601 ngx_int_t instance; | |
602 | |
603 instance = (uintptr_t) ev & 1; | |
604 ev = (ngx_event_t *) ((uintptr_t) ev & (uintptr_t) ~1); | |
605 | |
606 if ((!ev->posted && !ev->active) | 597 if ((!ev->posted && !ev->active) |
607 || ev->instance != ev->returned_instance) | 598 || ev->instance != ev->returned_instance) |
608 { | 599 { |
609 /* | 600 /* |
610 * the stale event from a file descriptor | 601 * the stale event from a file descriptor |