From 519ec304e44ba79c7a1bb82006a497876adb3d55 Mon Sep 17 00:00:00 2001 From: def Date: Mon, 12 Jan 2015 23:16:57 +0100 Subject: [PATCH] Fix: Only handle EPOLLERR as an error event When an EPOLLRDHUP is received with epoll_ctl, there can still be data to be read. So we shouldn't immediately close the socket and abort. --- lib/pure/selectors.nim | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/pure/selectors.nim b/lib/pure/selectors.nim index dfad644ab4..29f6cd3ab4 100644 --- a/lib/pure/selectors.nim +++ b/lib/pure/selectors.nim @@ -157,8 +157,6 @@ elif defined(linux): var evSet: set[Event] = {} if (s.events[i].events and EPOLLERR) != 0: evSet = evSet + {EvError} - if (s.events[i].events and EPOLLHUP) != 0: evSet = evSet + {EvError} - if (s.events[i].events and EPOLLRDHUP) != 0: evSet = evSet + {EvError} if (s.events[i].events and EPOLLIN) != 0: evSet = evSet + {EvRead} if (s.events[i].events and EPOLLOUT) != 0: evSet = evSet + {EvWrite} let selectorKey = s.fds[fd]