diff src/http/ngx_http_request.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 744ccb59062d
children 5ce6561246a5
line wrap: on
line diff
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1749,13 +1749,6 @@ void ngx_http_close_connection(ngx_conne
 
     if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_OK) {
 
-        ngx_unlock(&c->lock);
-        c->read->locked = 0;
-        c->write->locked = 0;
-
-        c->read->closed = 1;
-        c->write->closed = 1;
-
         if (c->read->prev) {
             ngx_delete_posted_event(c->read);
         }
@@ -1764,14 +1757,18 @@ void ngx_http_close_connection(ngx_conne
             ngx_delete_posted_event(c->write);
         }
 
+        c->read->closed = 1;
+        c->write->closed = 1;
+
+        ngx_unlock(&c->lock);
+        c->read->locked = 0;
+        c->write->locked = 0;
+
         ngx_mutex_unlock(ngx_posted_events_mutex);
     }
 
 #else
 
-    c->read->closed = 1;
-    c->write->closed = 1;
-
     if (c->read->prev) {
         ngx_delete_posted_event(c->read);
     }
@@ -1780,6 +1777,9 @@ void ngx_http_close_connection(ngx_conne
         ngx_delete_posted_event(c->write);
     }
 
+    c->read->closed = 1;
+    c->write->closed = 1;
+
 #endif
 
     fd = c->fd;