Mercurial > hg > nginx
diff 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 |
line wrap: on
line diff
--- a/src/event/modules/ngx_kqueue_module.c Sun Jun 27 18:01:57 2004 +0000 +++ b/src/event/modules/ngx_kqueue_module.c Mon Jun 28 16:05:02 2004 +0000 @@ -361,11 +361,10 @@ return NGX_ERROR; } - /* - * TODO: if timer is NGX_TIMER_INFINITE and any worker thread - * is still busy then set the configurable 500ms timeout - * to wake up another worker thread - */ + if (timer == NGX_TIMER_INFINITE || timer > 500) { + timer = 500; + break; + } #endif @@ -461,13 +460,18 @@ } } - if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { - ngx_accept_mutex_unlock(); - return NGX_ERROR; + if (events > 0) { + if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { + ngx_accept_mutex_unlock(); + return NGX_ERROR; + } + + lock = 1; + + } else { + lock =0; } - lock = 1; - for (i = 0; i < events; i++) { ngx_kqueue_dump_event(cycle->log, &event_list[i]); @@ -588,7 +592,7 @@ if (ngx_posted_events) { if (ngx_threaded) { - ngx_cv_signal(ngx_posted_events_cv); + ngx_cond_signal(ngx_posted_events_cv); } else { ngx_event_process_posted(cycle);