# HG changeset patch # User Valentin Bartenev # Date 1365779063 0 # Node ID 98cbd8f92c87ed043954593329a9214e357b62c5 # Parent 6362bd26e4b0332fa4f001278ad6fceb0cca596c Events: handle only active events in eventport. We generate both read and write events if an error event was returned by port_getn() without POLLIN/POLLOUT, but we should not try to handle inactive events, they may even have no handler. diff --git a/src/event/modules/ngx_eventport_module.c b/src/event/modules/ngx_eventport_module.c --- a/src/event/modules/ngx_eventport_module.c +++ b/src/event/modules/ngx_eventport_module.c @@ -530,6 +530,14 @@ ngx_eventport_process_events(ngx_cycle_t rev = c->read; wev = c->write; + if (!rev->active) { + revents &= ~POLLIN; + } + + if (!wew->active) { + revents &= ~POLLOUT; + } + rev->active = 0; wev->active = 0;