Со страницы Kqueue в Википедии:
Kqueue обеспечивает эффективные конвейеры ввода и вывода событий между ядром и пользовательской средой. Таким образом, можно изменять фильтры событий, а также получать ожидающие события, используя только один системный вызов kevent(2) на итерацию основного цикла событий. Это контрастирует со старыми традиционными системными вызовами опроса, такими как poll(2) и select(2), которые менее эффективны, особенно при опросе событий для большого количества файловых дескрипторов
Звучит здорово. Я ориентируюсь на FreeBSD для своего сервера, и я обрабатываю значительное количество fd сетевых сокетов — используя select() для них всех и выясняя, у кого считывать данные. Я бы предпочел использовать вызовы kevent() для повышения производительности, поскольку именно для этого он и существует!
Я прочитал справочную страницу для kevent во FreeBSD здесь но для меня это загадочно, и я не нахожу хороших ресурсов, объясняющих это. Пример использования kevent вместо select решит мою проблему, а также поможет лучше понять, как используется kevent().