Mercurial > hg > nginx
diff src/os/unix/ngx_process_cycle.c @ 370:54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 27 Jun 2004 18:01:57 +0000 |
parents | e411b1482ee3 |
children | 780e93985b93 |
line wrap: on
line diff
--- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c @@ -625,6 +625,13 @@ static void ngx_worker_process_cycle(ngx exit(2); } + if (!(ngx_posted_events_cv = ngx_cv_init(cycle->log))) { + /* fatal */ + exit(2); + } + + ngx_posted_events_mutex = &ngx_posted_events_cv->mutex; + for (i = 0; i < 1; i++) { if (ngx_create_thread(&tid, ngx_worker_thread_cycle, cycle, cycle->log) != 0) @@ -767,23 +774,25 @@ int ngx_worker_thread_cycle(void *data) return 1; } - - /* STUB */ - ngx_log_debug1(NGX_LOG_DEBUG_CORE, ngx_cycle->log, ngx_errno, "thread %d started", ngx_thread_self()); ngx_setproctitle("worker thread"); - sleep(5); + for ( ;; ) { + if (ngx_cv_wait(ngx_posted_events_cv) == NGX_ERROR) { + return 1; + } - ngx_gettimeofday(&tv); - ngx_time_update(tv.tv_sec); + if (ngx_event_thread_process_posted(cycle) == NGX_ERROR) { + return 1; + } + } ngx_log_debug1(NGX_LOG_DEBUG_CORE, ngx_cycle->log, ngx_errno, "thread %d done", ngx_thread_self()); - return 1; + return 0; } #endif