【问题标题】:Erlang Kernel Space PollingErlang 内核空间轮询
【发布时间】:2022-01-12 16:37:18
【问题描述】:

我只想知道对于 FreeBSD 的 kqueue 和对于 Linux 的 epoll 和其他内核空间轮询函数是否是处理套接字和连接的默认操作系统行为?

我问这个是因为我已经阅读了处理 tcp 请求的 Erlang 网络驱动程序部分的源代码,并且有任何 kqueueepoll 或类似的东西来轮询来自套接字的事件

【问题讨论】:

    标签: erlang elixir


    【解决方案1】:

    根据博客文章I/O polling options in OTP 21,从 Erlang/OTP 21.0 开始,是否使用内核轮询在编译时决定(在早期版本中,您可以通过传递 +K 命令行选项显式激活它)。据我了解,只要您的系统支持,它就会默认开启。

    你可以用system_info检查内核轮询是否被激活:

    > erlang:system_info(kernel_poll).
    true
    

    【讨论】:

    • 是的,谢谢你,我以前读过这个,但实际上我的问题是:如果在 Erlang/OTP 中启用内核空间轮询,这意味着内核将自动 epollkqueue创建绑定侦听和接受连接而不通过代码指定其行为?因为 Erlang Network Driver 中没有内核轮询功能所以希望你能理解我的问题
    • 你可能想看看 Erlang/OTP 源代码中的erl_poll.c
    猜你喜欢
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2019-02-14
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多