Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FreeBSD & Linux disk AIO support
On Sun, Aug 30, 2009 at 11:40:57PM +0200, Valery Kholodkov wrote:
> Igor Sysoev пишет:
> >Патч сейча сделать не могу, просто уберите:
> >
> > if (events == 0) {
> >- ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
> >- "io_getevents() did not return %uL events",
> >ready);
> > return;
> > }
> >
> >
> >18446744073709551615 - это -1. Там похоже, есть небольшой race condition,
> >когда io_getevents() сначала возвращает на одно событие больше, чем
> >сообщил eventfd(), а потом - на одно событие меньше.
>
> Вот кстати, если уж тут началось такое интенсивное использование
> eventfd, то почему бы семафоры (или как вы их там называете -- busy
> locks) не сделать на eventfd?
>
> А именно, если завершилось получение ресурса, которого ждут запросы из
> другого воркера, то возобновлять их через eventfd?
Чтобы это работало только в Linux 2.6.22+ ?
Да я даже отдладить это не cмогу.
--
Игорь Сысоев
http://sysoev.ru
|