diff src/event/ngx_event_posted.c @ 377:41437e4fd9b4

nginx-0.0.7-2004-07-05-19:08:23 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 05 Jul 2004 15:08:23 +0000
parents d0451e402e27
children 73688d5d7fc3
line wrap: on
line diff
--- a/src/event/ngx_event_posted.c
+++ b/src/event/ngx_event_posted.c
@@ -28,27 +28,6 @@ void ngx_event_process_posted(ngx_cycle_
 
         ngx_delete_posted_event(ev);
 
-#if 0
-        /* do not check instance ??? */
-
-        if (ev->accept) {
-            continue;
-        }
-#endif
-
-        if (ev->closed
-            || (ev->use_instance && ev->instance != ev->returned_instance))
-        {
-            /*
-             * the stale event from a file descriptor
-             * that was just closed in this iteration
-             */
-
-            ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                           "stale posted event " PTR_FMT, ev);
-            continue;
-        }
-
         ev->event_handler(ev);
     }
 }
@@ -58,7 +37,30 @@ void ngx_event_process_posted(ngx_cycle_
 
 void ngx_wakeup_worker_thread(ngx_cycle_t *cycle)
 {
-    ngx_int_t  i;
+    ngx_int_t     i;
+    ngx_uint_t    busy;
+    ngx_event_t  *ev;
+
+#if 0
+    busy = 1;
+
+    if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
+        return;
+    }
+
+    for (ev = (ngx_event_t *) ngx_posted_events; ev; ev = ev->next) {
+        if (*(ev->lock) == 0) {
+            busy = 0;
+            break;
+        }
+    }
+
+    ngx_mutex_unlock(ngx_posted_events_mutex);
+
+    if (busy) {
+        return;
+    }
+#endif
 
     for (i = 0; i < ngx_threads_n; i++) {
         if (ngx_threads[i].state == NGX_THREAD_FREE) {
@@ -97,46 +99,25 @@ ngx_int_t ngx_event_thread_process_poste
 
             ngx_delete_posted_event(ev);
 
-            ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                          "event instance: c:%d i:%d r:%d",
-                          ev->closed, ev->instance, ev->returned_instance);
-
-            if (ev->closed
-                || (ev->use_instance && ev->instance != ev->returned_instance))
-            {
-                /*
-                 * The stale event from a file descriptor that was just
-                 * closed in this iteration.  We use ngx_cycle->log
-                 * because ev->log may be already destoyed.
-                 */
-
-                ngx_log_debug1(NGX_LOG_DEBUG_EVENT, ngx_cycle->log, 0,
-                               "stale posted event " PTR_FMT, ev);
-
-                ngx_unlock(ev->lock);
-
-                ev = ev->next;
-
-                continue;
-            }
-
             ev->locked = 1;
 
             ev->ready |= ev->posted_ready;
             ev->timedout |= ev->posted_timedout;
-            ev->available |= ev->posted_available;
             ev->pending_eof |= ev->posted_eof;
 #if (HAVE_KQUEUE)
             ev->kq_errno |= ev->posted_errno;
 #endif
+            if (ev->posted_available) {
+                ev->available = ev->posted_available;
+            }
 
             ev->posted_ready = 0;
             ev->posted_timedout = 0;
-            ev->posted_available = 0;
             ev->posted_eof = 0;
 #if (HAVE_KQUEUE)
             ev->posted_errno = 0;
 #endif
+            ev->posted_available = 0;
 
             ngx_mutex_unlock(ngx_posted_events_mutex);