selectors: Make sure EpollSelecrtor.select() works when no FD is registered.
Closes http://bugs.python.org/issue23009
This commit is contained in:
@@ -418,7 +418,12 @@ if hasattr(select, 'epoll'):
|
||||
# epoll_wait() has a resolution of 1 millisecond, round away
|
||||
# from zero to wait *at least* timeout seconds.
|
||||
timeout = math.ceil(timeout * 1e3) * 1e-3
|
||||
max_ev = len(self._fd_to_key)
|
||||
|
||||
# epoll_wait() expectcs `maxevents` to be greater than zero;
|
||||
# we want to make sure that `select()` can be called when no
|
||||
# FD is registered.
|
||||
max_ev = max(len(self._fd_to_key), 1)
|
||||
|
||||
ready = []
|
||||
try:
|
||||
fd_event_list = self._epoll.poll(timeout, max_ev)
|
||||
|
||||
Reference in New Issue
Block a user