<div dir="ltr">Hello!<div><br></div><div>ngx_epoll_del_event is a function to delete an event. Deleting an event means unregister the file descriptor from epoll therefore it would not be triggered unless being added again. But EPOLL_CTL_MOD won't remove the event as far as I know. It seems the event would be triggered in the next processing loop. So why use EPOLL_CTL_MOD here rather than just EPOLL_CTL_DEL?</div><div><br></div><div>The source code is located in `src/event/modules/ngx_epoll_module.c`</div><div><br></div><div>static ngx_int_t<br>ngx_epoll_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)<br>{<br>    // ......</div><div><br>    if (e->active) {<br>        op = EPOLL_CTL_MOD;<br>        ee.events = prev | (uint32_t) flags;<br>        ee.data.ptr = (void *) ((uintptr_t) c | ev->instance);<br><br>    } else {<br>        op = EPOLL_CTL_DEL;<br>        ee.events = 0;<br>        ee.data.ptr = NULL;<br>    }<br><br>    ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0,<br>                   "epoll del event: fd:%d op:%d ev:%08XD",<br>                   c->fd, op, ee.events);<br><br>    if (epoll_ctl(ep, op, c->fd, &ee) == -1) {<br>        ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno,<br>                      "epoll_ctl(%d, %d) failed", op, c->fd);<br>        return NGX_ERROR;<br>    }<br><br>    ev->active = 0;<br><br>    return NGX_OK;<br>}<br></div></div>