【问题标题】:How do you use AIO and epoll together in a single event loop?如何在单个事件循环中同时使用 AIO 和 epoll?
【发布时间】:2010-12-21 23:44:35
【问题描述】:

如何将 AIO 和 epoll 组合在一个事件循环中?

Google 在 2002 年和 2003 年发现了很多关于统一它们的讨论,但不清楚是否发生了什么事,或者是否有可能。

有没有人使用 eventfd 作为 aio 信号的 epoll 循环?

【问题讨论】:

  • 意识到这是一个非常古老的问题,但您可以使用 'signalfd' 作为来自 aio 的信号
  • 你指的是POSIX AIO还是Linux AIO?后者允许为完成通知注册一个 eventfd。你可以将那个 eventfd 添加到你的 epoll fd 集合中。

标签: linux asynchronous epoll aio


【解决方案1】:

尝试 libevent:

http://www.monkey.org/~provos/libevent/

有补丁支持两者。

【讨论】:

【解决方案2】:

您可以查看 http://www.xmailserver.org/eventfd-aio-test.c 以获取 aio 和 eventfd 的示例

【讨论】:

【解决方案3】:

用 epoll 试过eventfd

"关于 eventfd 文件描述符的一个关键点是它可以被监控 像使用 select(2)、poll(2) 或 epoll(7) 的任何其他文件描述符一样。"

【讨论】:

    【解决方案4】:

    FreeBSD 支持 AIO 和 Kqueue,可以通过 Kqueue 接口监控 AIO 完成情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 2023-03-04
      • 2022-01-05
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2016-12-15
      相关资源
      最近更新 更多