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

Igor Sysoev is at rambler-co.ru
Fri Jan 28 14:51:05 MSK 2005


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





More information about the nginx-ru mailing list