comparison src/event/modules/ngx_kqueue_module.c @ 374:213f17e9f776

nginx-0.0.7-2004-07-02-09:47:00 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 02 Jul 2004 05:47:00 +0000
parents 018569a8f09c
children 744ccb59062d
comparison
equal deleted inserted replaced
373:018569a8f09c 374:213f17e9f776
234 { 234 {
235 ngx_event_t *e; 235 ngx_event_t *e;
236 236
237 ev->active = 0; 237 ev->active = 0;
238 ev->disabled = 0; 238 ev->disabled = 0;
239
240 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
241 return NGX_ERROR;
242 }
239 ev->posted = 0; 243 ev->posted = 0;
244 ngx_mutex_unlock(ngx_posted_events_mutex);
240 245
241 if (ngx_thread_main() 246 if (ngx_thread_main()
242 && nchanges > 0 247 && nchanges > 0
243 && ev->index < (u_int) nchanges 248 && ev->index < (u_int) nchanges
244 && ((uintptr_t) change_list[ev->index].udata & (uintptr_t) ~1) 249 && ((uintptr_t) change_list[ev->index].udata & (uintptr_t) ~1)
517 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 522 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
518 "kevent: stale event " PTR_FMT, ev); 523 "kevent: stale event " PTR_FMT, ev);
519 continue; 524 continue;
520 } 525 }
521 526
522 ev->returned_instance = instance;
523
524 if (ev->log && (ev->log->log_level & NGX_LOG_DEBUG_CONNECTION)) { 527 if (ev->log && (ev->log->log_level & NGX_LOG_DEBUG_CONNECTION)) {
525 ngx_kqueue_dump_event(ev->log, &event_list[i]); 528 ngx_kqueue_dump_event(ev->log, &event_list[i]);
529 }
530
531 ev->returned_instance = instance;
532
533 if (!ev->accept && (ngx_threaded || ngx_accept_mutex_held)) {
534 ev->posted_ready = 1;
535 ev->posted_available += event_list[i].data;
536
537 if (event_list[i].flags & EV_EOF) {
538 ev->posted_eof = 1;
539 ev->posted_errno = event_list[i].fflags;
540 }
541
542 ngx_post_event(ev);
543
544 continue;
526 } 545 }
527 546
528 ev->available = event_list[i].data; 547 ev->available = event_list[i].data;
529 548
530 if (event_list[i].flags & EV_EOF) { 549 if (event_list[i].flags & EV_EOF) {
531 ev->kq_eof = 1; 550 ev->kq_eof = 1;
532 ev->kq_errno = event_list[i].fflags; 551 ev->kq_errno = event_list[i].fflags;
533 }
534
535 if (ev->oneshot && ev->timer_set) {
536 ngx_del_timer(ev);
537 } 552 }
538 553
539 ev->ready = 1; 554 ev->ready = 1;
540 555
541 break; 556 break;
561 if (!ngx_threaded && !ngx_accept_mutex_held) { 576 if (!ngx_threaded && !ngx_accept_mutex_held) {
562 ev->event_handler(ev); 577 ev->event_handler(ev);
563 continue; 578 continue;
564 } 579 }
565 580
581 #if 0
566 if (!ev->accept) { 582 if (!ev->accept) {
567 ngx_post_event(ev); 583 ngx_post_event(ev);
568 continue; 584 continue;
569 } 585 }
586 #endif
570 587
571 if (ngx_accept_disabled > 0) { 588 if (ngx_accept_disabled > 0) {
572 continue; 589 continue;
573 } 590 }
574 591