def poll(self, timeout):
try:
fds = self._poller.poll(timeout * 1000)
except select.error as err:
if err[0] == errno.EINTR:
display.vvv(u"EINTR encountered in poll")
return [], []
raise
readables = []
for fd, eventmask in fds:
if eventmask & select.POLLNVAL:
# POLLNVAL means `fd` value is invalid, not open.
self._poller.unregister(fd)
elif eventmask & self.READ:
if fd in self.readables_fd_map:
readables.append(self.readables_fd_map[fd])
return readables, []
评论列表
文章目录