libev(source)的文档说:
Kqueue特别值得一提,因为在撰写本文时,除了NetBSD之外,它在所有BSD上都被破坏了(除了在套件和管道之外的任何东西,除了在达尔文,当然它完全没用)
它还提到:
kqueue系统调用在所有已知版本中都被破坏 - 大多数版本仅支持套接字,许多支持管道。
那么,kqueue的局限性是什么?这些限制在哪里记录?初步研究发现旧操作系统(Mac OS X 10.3)上的内核恐慌以及有关错误/不完整文档的投诉。我不知道这些来源有多可靠。
特别是,如果kqueue与套接字(AF_UNIX,AF_INET和AF_INET6)可靠地工作,那么我不介意。我对有关Mac OS X和FreeBSD实现的信息特别感兴趣。
答案 0 :(得分:4)
在OS X上,您不应该遇到AF_UNIX
,AF_INET
和AF_INET6
的问题。如果你想在OS X上使用PTY,那么你会遇到问题。 10.9,因为这些版本不支持PTY。有证据表明在OS X 10.9上,最终支持PTY。
如果您尝试使用非文件描述符通知,您将开始遇到其他限制(例如,不支持AIO)。
我不熟悉FreeBSD的kqueue实现。也许其他人可以添加一些有关它的信息。
答案 1 :(得分:1)
kqueue
完全适用于FreeBSD,至少对于网络而言。我已经使用高达180k连接的活动套接字测试了自己的网络内容。我不知道AIO ..还没有测试过自己。