kqueue有什么局限性?

问题描述

| libev的文档(源)说:   值得一提的是Kqueue,因为在撰写本文时,它在除NetBSD之外的所有BSD上都被破坏了(通常它不能与套接字和管道一起可靠地工作,除了在Darwin上,当然它是完全没用的) )。 它还提到:   kqueue syscall在所有已知版本中均被破坏-大多数版本仅支持套接字,许多支持管道。 那么,kqueue的局限性是什么?这些限制在哪里记录?最初的研究发现了对旧版操作系统(Mac OS X 10.3)上的内核恐慌的参考,以及有关文档不正确/不完整的投诉。我不知道这些来源有多可靠。 特别是,如果kqueue确实可以与套接字(AF_UNIX,AF_INET和AF_INET6)可靠地一起工作,那么我不在乎。我对有关Mac OS X和FreeBSD实现的信息特别感兴趣。     

解决方法

在OS X上,
AF_UNIX
AF_INET
AF_INET6
应该没有问题。如果要在OS X <10.9上的PTY中使用它,则会遇到问题,因为这些版本不支持PTY。有证据表明,在OS X 10.9上最终支持PTY。 如果尝试使用非文件描述符通知,您将开始遇到其他限制(例如,不支持AIO)。 我对FreeBSD的kqueue实现不熟悉。也许其他人可以添加有关此信息。     ,
kqueue
可以在FreeBSD上完美运行,至少对于网络而言。我已经使用最多18万个活动插座对自己的网络进行了测试。我不知道AIO ..还没有测试自己。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...