FreeBSD & Linux disk AIO support

Valery Kholodkov valery+nginxru at grid.net.ru
Mon Aug 31 01:40:57 MSD 2009


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?

-- 
Best regards,
Valery Kholodkov





More information about the nginx-ru mailing list