epoll_create и epoll_wait - PullRequest
       3

epoll_create и epoll_wait

1 голос
/ 06 марта 2012

Меня интересовали параметры двух API epoll.

  1. epoll_create (int size) - в этом API размер определяется как размер пула событий. Но, похоже, что больше событий, чем размер все еще работает. (Я установил размер как 2 и заставил пул событий иметь 3 события ... но он все еще работает! 1006 *

  2. epoll_wait (int maxevents) - для этого API определение maxevents является простым. Однако я вижу отсутствие информации или советов о том, как определить этот параметр. Я ожидаю, что этот параметр будет изменен в зависимости от размера пула событий epoll. Любые предложения или советы будут отличными. Спасибо!

1 Ответ

1 голос
/ 16 марта 2012

1.

"man epoll_create"

DESCRIPTION
       ...
       The size is not the maximum size of the backing store but just a hint
       to the kernel about how to dimension internal structures.  (Nowadays,
       size is unused; see NOTES below.)

NOTES
       Since Linux 2.6.8, the size argument is unused, but must  be  greater
       than  zero.   (The  kernel dynamically sizes the required data struc‐
       tures without needing this initial hint.)

2.

Просто определите точное число самостоятельно, но имейте в виду, что его небольшое число можетнемного снизим эффективность.

Поскольку меньшее число присваивается параметру "maxevent", тем чаще вам, возможно, придется вызывать epoll_wait (), чтобы поглотить все события, уже поставленные в очередь в epoll.

...