diff src/event/modules/ngx_devpoll_module.c @ 116:e38f51cd0905 NGINX_0_3_5

nginx 0.3.5 *) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login was changed by authorization server; bug appeared in 0.2.2. *) Bugfix: the accept mutex did not work and all connections were handled by one process; bug appeared in 0.3.3. *) Bugfix: the timeout did not work if the "rtsig" method and the "timer_resolution" directive were used.
author Igor Sysoev <http://sysoev.ru>
date Fri, 21 Oct 2005 00:00:00 +0400
parents 408f195b3482
children df17fbafec8f
line wrap: on
line diff
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -332,7 +332,6 @@ ngx_devpoll_process_events(ngx_cycle_t *
     ngx_err_t           err;
     ngx_int_t           i;
     ngx_uint_t          level;
-    ngx_msec_t          delta;
     ngx_event_t        *rev, *wev, **queue;
     ngx_connection_t   *c;
     struct dvpoll       dvp;
@@ -349,6 +348,8 @@ ngx_devpoll_process_events(ngx_cycle_t *
                           "write(/dev/poll) failed");
             return NGX_ERROR;
         }
+
+        nchanges = 0;
     }
 
     dvp.dp_fds = event_list;
@@ -362,10 +363,6 @@ ngx_devpoll_process_events(ngx_cycle_t *
         err = 0;
     }
 
-    nchanges = 0;
-
-    delta = ngx_current_msec;
-    
     if (flags & NGX_UPDATE_TIME) {
         ngx_time_update(0, 0);
     }
@@ -388,21 +385,14 @@ ngx_devpoll_process_events(ngx_cycle_t *
         return NGX_ERROR;
     }
 
-    if (timer != NGX_TIMER_INFINITE) {
-        delta = ngx_current_msec - delta;
+    if (events == 0) {
+        if (timer != NGX_TIMER_INFINITE) {
+            return NGX_OK;
+        }
 
-        ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                       "devpoll timer: %M, delta: %M", timer, delta);
-    } else {
-        if (events == 0) {
-            ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
-                          "ioctl(DP_POLL) returned no events without timeout");
-            return NGX_ERROR;
-        }
-    }
-
-    if (events == 0) {
-        return NGX_OK;
+        ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
+                      "ioctl(DP_POLL) returned no events without timeout");
+        return NGX_ERROR;
     }
 
     ngx_mutex_lock(ngx_posted_events_mutex);