21 lines
776 B
Diff
21 lines
776 B
Diff
|
--- nginx-1.0.12/src/event/modules/ngx_epoll_module.c 2011-09-30 22:12:53.000000000 +0800
|
||
|
+++ nginx-1.0.12-patched/src/event/modules/ngx_epoll_module.c 2011-11-30 11:08:46.775817019 +0800
|
||
|
@@ -682,6 +682,17 @@
|
||
|
wev = c->write;
|
||
|
|
||
|
if ((revents & EPOLLOUT) && wev->active) {
|
||
|
+ if (c->fd == -1 || wev->instance != 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,
|
||
|
+ "epoll: stale event %p", c);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
|
||
|
if (flags & NGX_POST_THREAD_EVENTS) {
|
||
|
wev->posted_ready = 1;
|