Википедия говорит
в отличие от старых системных вызовов, которые работают в O (n), epoll работает в O (1) [2]).
http://en.wikipedia.org/wiki/Epoll
Однако исходный код на fs / eventpoll.c в Linux-2.6.38, похоже, что это реализовано с помощью дерева RB для поиска, которое имеет O (logN)
/*
* Search the file inside the eventpoll tree. The RB tree operations
* are protected by the "mtx" mutex, and ep_find() must be called with
* "mtx" held.
*/
static struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd)
{
На самом деле я не видел ни одной страницы руководства, в которой говорилось бы, что сложность epoll () равна O (1). Почему он известен как O (1)?