关于 epoll 的小小疑问, epoll 在等待事件的过程中会阻塞么

发布于 2022-08-31 09:22:43 字数 546 浏览 12 评论 0

最近在看tornado的源码,有个RT的疑问

try:
    event_pairs = self._impl.poll(poll_timeout)
    except Exception as e:
    # Depending on python version and IOLoop implementation,
    # different exception types may be thrown and there are
    # two ways EINTR might be signaled:
    # * e.errno == errno.EINTR
    # * e.args is like (errno.EINTR, 'Interrupted system call')
        if errno_from_exception(e) == errno.EINTR:
            continue
        else:
            raise

在调用poll方法等待事件的过程中epoll是马上返回还是至少有一个事件后才返回

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕花眠 2022-09-07 09:22:43

epoll是至少有一个事件才返回。在有事件之前是阻塞住的

Hello爱情风 2022-09-07 09:22:43

当然会阻塞啊

一般用法 while 1: fd.poll()
不阻塞不是死循环了?

当然有时候根据需要也有用非阻塞的(把超时设置成0),相当于是在查询系统事件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文