ioloop.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:pychinadns 作者: faicker 项目源码 文件源码
def run(self):
        while True:
            try:
                self.check_timer()
                events = self.epoll.poll(self.MIN_INTERVAL)
                for fd, event in events:
                    sock = self.fd2socks.get(fd)
                    if not sock:
                        continue
                    if event & select.EPOLLERR or event & select.EPOLLHUP:
                        if self.err_callback:
                            self.err_callback[0](sock, *self.err_callback[1],
                                                 **self.err_callback[2])
                    elif event & select.EPOLLIN:
                        callback, args, kwargs = self.rd_socks.get(sock)
                        if callback:
                            callback(sock, *args, **kwargs)
                    elif event & select.EPOLLOUT:
                        callback, args, kwargs = self.wr_socks.get(sock)
                        if callback:
                            callback(sock, *args, **kwargs)
            except Exception as e:
                print("exception, %s\n%s" % (e, traceback.format_exc()))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号