comparison src/event/modules/ngx_kqueue_module.c @ 371:780e93985b93

nginx-0.0.7-2004-06-28-20:05:02 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 28 Jun 2004 16:05:02 +0000
parents 54f76b0b8dca
children c9fdfccebc49
comparison
equal deleted inserted replaced
370:54f76b0b8dca 371:780e93985b93
359 #if (NGX_THREADS) 359 #if (NGX_THREADS)
360 if (timer == NGX_TIMER_ERROR) { 360 if (timer == NGX_TIMER_ERROR) {
361 return NGX_ERROR; 361 return NGX_ERROR;
362 } 362 }
363 363
364 /* 364 if (timer == NGX_TIMER_INFINITE || timer > 500) {
365 * TODO: if timer is NGX_TIMER_INFINITE and any worker thread 365 timer = 500;
366 * is still busy then set the configurable 500ms timeout 366 break;
367 * to wake up another worker thread 367 }
368 */
369 368
370 #endif 369 #endif
371 370
372 if (timer != 0) { 371 if (timer != 0) {
373 break; 372 break;
459 ngx_accept_mutex_unlock(); 458 ngx_accept_mutex_unlock();
460 return NGX_ERROR; 459 return NGX_ERROR;
461 } 460 }
462 } 461 }
463 462
464 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { 463 if (events > 0) {
465 ngx_accept_mutex_unlock(); 464 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
466 return NGX_ERROR; 465 ngx_accept_mutex_unlock();
467 } 466 return NGX_ERROR;
468 467 }
469 lock = 1; 468
469 lock = 1;
470
471 } else {
472 lock =0;
473 }
470 474
471 for (i = 0; i < events; i++) { 475 for (i = 0; i < events; i++) {
472 476
473 ngx_kqueue_dump_event(cycle->log, &event_list[i]); 477 ngx_kqueue_dump_event(cycle->log, &event_list[i]);
474 478
586 ngx_event_expire_timers((ngx_msec_t) delta); 590 ngx_event_expire_timers((ngx_msec_t) delta);
587 } 591 }
588 592
589 if (ngx_posted_events) { 593 if (ngx_posted_events) {
590 if (ngx_threaded) { 594 if (ngx_threaded) {
591 ngx_cv_signal(ngx_posted_events_cv); 595 ngx_cond_signal(ngx_posted_events_cv);
592 596
593 } else { 597 } else {
594 ngx_event_process_posted(cycle); 598 ngx_event_process_posted(cycle);
595 } 599 }
596 } 600 }