From: Jo-Philipp Wich Date: Sat, 7 Jul 2012 16:17:40 +0000 (+0200) Subject: uloop: handle EPOLLHUP like EPOLLERR to prevent infinite tight loops between epoll_wa... X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=commitdiff_plain;h=0001d8ab26694f5f546da7e8f9d0575b49671500 uloop: handle EPOLLHUP like EPOLLERR to prevent infinite tight loops between epoll_wait() and the continue in uloop_run_events() --- diff --git a/uloop.c b/uloop.c index bdda0cf..38da5f6 100644 --- a/uloop.c +++ b/uloop.c @@ -231,12 +231,12 @@ static void uloop_run_events(int timeout) if (!u) continue; - if(events[n].events & EPOLLERR) { + if(events[n].events & (EPOLLERR|EPOLLHUP)) { u->error = true; uloop_fd_delete(u); } - if(!(events[n].events & (EPOLLRDHUP|EPOLLIN|EPOLLOUT|EPOLLERR))) + if(!(events[n].events & (EPOLLRDHUP|EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP))) continue; if(events[n].events & EPOLLRDHUP)