Why does ngx_epoll_del_event use EPOLL_CTL_MOD
Qiying Wang
qiyingwangwqy at gmail.com
Mon Oct 28 07:51:43 UTC 2019
Sorry for bothering you.
I think I've made it clear.
Because there's another function ngx_epoll_add_connection which add an
event combined with EPOLLIN & EPOLLOUT. If using ngx_epoll_del_event on
this kind of event it cannot just use EPOLL_CTL_DEL, in which way both the
read and write will be delete. That's why the EPOLL_CTL_MOD was used here.
There's another piece of code in the ignored parts of the code I previously
quoted. Which means when deleting a read event, set it to write event and
modify it, while when deleting a write event, set it to read event and
modify it.
if (event == NGX_READ_EVENT) {
e = c->write;
prev = EPOLLOUT;
} else {
e = c->read;
prev = EPOLLIN|EPOLLRDHUP;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20191028/70a68892/attachment.htm>
More information about the nginx-devel
mailing list