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