ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: А не должен ли со браться метод epoll?



On Fri, 28 Jan 2005, Dmitry V. Lunin wrote:

checking for OS
+ Linux 2.4.29-s2 i686
+ using rt signals
checking for epoll ... found

Собирается модуль rtsig, но ведь epoll то находит, почему не использует?
Из-за ядра?


epoll тоже используется. Всё, что показывается с '+' задаётся жёстко
в зависимости от версии системы, а не на основании тестов. Под FreeBSD
например, это выглядит так:

checking for OS
 + FreeBSD 5.3-RELEASE i386
 + using sendfile()
 + using kqueue
 + using kqueue's NOTE_LOWAT

Там, где я знаю, что у какой-либо фичи есть проблемы, даже при том, что тесты
показывают наличие этой фичи, я её не использую.

У меня под Linux 2.6.10 epoll собрался, но не работал, пришлось насильно заставить с poll работать.

Вместо poll в данном случае лучше использовать rtsig.

А в логах
2005/01/26 05:33:43 [emerg] 8071#0: epoll_create() failed (38: )
Это как то лечится?

38 - это ENOSYS, "Function not implemented". Очень странно. На ядре 2.6.10
epoll должен быть.

epoll сейчас собирается при условии, что есть include'ы и библиотеки,
поддерживающие его. Возможность использования его в run-time не проверяется,
это было сделано специально для сборки пакетов.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.