Каковы ограничения kqueue? - PullRequest
1 голос
/ 23 мая 2011

В документации к libev ( source ) говорится, что:

Kqueue заслуживает отдельного упоминания, поскольку на момент написания этой статьи он был сломан на всех BSD, кроме NetBSD (обычно он не работает надежно ни с чем, кроме розеток и трубок, за исключением Дарвина, где, конечно, он совершенно бесполезен).

Также упоминается, что:

kqueue syscall не работает во всех известных версиях - большинство версий поддерживают только сокеты, многие каналы поддержки.

Итак, каковы ограничения kqueue?Где эти ограничения задокументированы?Первоначальное исследование обнаружило ссылки на панику ядра в старых операционных системах (Mac OS X 10.3) и жалобы на неправильную / неполную документацию.Я не знаю, насколько надежны эти источники.

В частности, если kqueue надежно работает с сокетами (AF_UNIX, AF_INET и AF_INET6), то я не против.Меня особенно интересует информация о реализациях Mac OS X и FreeBSD.

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

В OS X у вас не должно быть проблем с AF_UNIX, AF_INET и AF_INET6.У вас будут проблемы, если вы захотите использовать его с PTY на OS X <10.9, поскольку PTY не поддерживаются в этих версиях.Существуют некоторые свидетельства того, что в OS X 10.9 наконец-то поддерживаются PTY. </p>

Если вы попытаетесь использовать уведомления не файлового дескриптора, вы начнете сталкиваться с другими ограничениями (например, AIO не поддерживается).

Я не знаком с реализацией kqueue во FreeBSD.Возможно, кто-то еще, кто может добавить некоторую информацию об этом.

1 голос
/ 20 марта 2013

kqueue отлично работает на FreeBSD, по крайней мере, для работы в сети.Я проверил себя в сети с подключенными активными розетками до 180 тыс.Я не знаю, для AIO .. не проверял себя.

...