Выполняет ли epoll () свою работу в O (1)?

Википедия говорит

в отличие от старых системных вызовов, которые работают в 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)?

55
задан ddoman 24 June 2011 в 12:12
поделиться