]> git.kaiwu.me - nginx.git/commitdiff
nginx-0.0.3-2004-04-13-09:27:03 import
authorIgor Sysoev <igor@sysoev.ru>
Tue, 13 Apr 2004 05:27:03 +0000 (05:27 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 13 Apr 2004 05:27:03 +0000 (05:27 +0000)
src/event/modules/ngx_epoll_module.c
src/event/ngx_event_accept.c
src/http/modules/proxy/ngx_http_proxy_handler.c
src/os/unix/ngx_linux_init.c
src/os/unix/ngx_solaris_init.c

index ab0c192608a278281d0be1c5520ca52190864c1e..f4e993676c916ad172b08cdab5f3d4ae4eef1bc5 100644 (file)
@@ -434,10 +434,6 @@ int ngx_epoll_process_events(ngx_cycle_t *cycle)
             c->write->returned_instance = instance;
         }
 
-#if (NGX_DEBUG)
-        log = c->log ? c->log : cycle->log;
-#endif
-
         if (c->read->instance != instance) {
 
             /*
@@ -445,11 +441,15 @@ int ngx_epoll_process_events(ngx_cycle_t *cycle)
              * that was just closed in this iteration
              */
 
-            ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
+            ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
                            "epoll: stale event " PTR_FMT, c);
             continue;
         }
 
+#if (NGX_DEBUG)
+        log = c->log ? c->log : cycle->log;
+#endif
+
         ngx_log_debug3(NGX_LOG_DEBUG_EVENT, log, 0,
                        "epoll: fd:%d ev:%04X d:" PTR_FMT,
                        c->fd, event_list[i].events, event_list[i].data);
index 235ff7fc7feba714cc8365061100b5df75e10c86..07fc6a3255cf8eaf6999bea945285b1cd81a0b9d 100644 (file)
@@ -328,7 +328,6 @@ ngx_int_t ngx_trylock_accept_mutex(ngx_cycle_t *cycle)
     if (*ngx_accept_mutex == 0
         && ngx_atomic_cmp_set(ngx_accept_mutex, 0, ngx_pid))
     {
-
         ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
                        "accept mutex locked");
 
index 84c926470ac50d6c40b34edce98d315bd4d04ea6..017d7c8d00511fb327946d710c8b78fa3b143258 100644 (file)
@@ -425,6 +425,10 @@ void ngx_http_proxy_check_broken_connection(ngx_event_t *ev)
 
     n = recv(c->fd, buf, 1, MSG_PEEK);
 
+    if (ev->write && n >= 0) {
+        return;
+    }
+
     if (n > 0) {
         if ((ngx_event_flags & NGX_USE_LEVEL_EVENT) && ev->active) {
             if (ngx_del_event(ev, NGX_READ_EVENT, 0) == NGX_ERROR) {
index 387a4914331096e716193a881f72231701455ac1..ea2e812bece42907c4539862645922a419eee98d 100644 (file)
@@ -9,10 +9,15 @@ char ngx_linux_kern_osrelease[20];
 
 ngx_os_io_t ngx_os_io = {
     ngx_unix_recv,
+    ngx_readv_chain,
     NULL,
-    NULL,
+#if (HAVE_SENDFILE)
     ngx_linux_sendfile_chain,
     NGX_IO_SENDFILE
+#else
+    ngx_writev_chain,
+    0
+#endif
 };
 
 
index b2aba61b94121061a40935b3a900e1562e381075..8f2e484b2464178818f3d3bd8c351eb795cf3737 100644 (file)
@@ -10,7 +10,7 @@ char ngx_solaris_version[50];
 
 ngx_os_io_t ngx_os_io = {
     ngx_unix_recv,
-    NULL,
+    ngx_readv_chain,
     NULL,
 #if (HAVE_SENDFILE)
     ngx_solaris_sendfilev_chain,