aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_process_cycle.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-06-27 18:01:57 +0000
committerIgor Sysoev <igor@sysoev.ru>2004-06-27 18:01:57 +0000
commitc02473048cee372cb8644e1f2d566431781074d2 (patch)
tree689654cd7b37636279b5587ddd3b45ad6bddbd3c /src/os/unix/ngx_process_cycle.c
parentb1af9bbcabf1bdbe119366971a2d0f6c3f8f595d (diff)
downloadnginx-c02473048cee372cb8644e1f2d566431781074d2.tar.gz
nginx-c02473048cee372cb8644e1f2d566431781074d2.zip
nginx-0.0.7-2004-06-27-22:01:57 import
Diffstat (limited to 'src/os/unix/ngx_process_cycle.c')
-rw-r--r--src/os/unix/ngx_process_cycle.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 21966f272..6d7fe06c2 100644
--- 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_cycle_t *cycle, void *data)
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