Re: Инициализация списка ngx_posted_events

Maxim Dounin mdounin at mdounin.ru
Fri Aug 30 08:42:12 UTC 2013


Hello!

On Fri, Aug 30, 2013 at 10:06:48AM +0400, titkovdmitry at gmail.com wrote:

> Здравствуйте!
> Я разрабатываю модуль к серверу nginx который позволяет формировать
> некий текстовый ответ на http запрос.
> Процесс формирования ответа полностью отвязан от nginx и я хотел бы
> вынести этот процесс в thread pool.
> Мне кажется я разобрался как это можно сделать но у меня остается
> один вопрос.
> 
> Реализовать я бы хотел это следующим образом, когда вызывается
> обработчик запроса модуля я копирую все необходимые параметры в
> структуру и передаю её на выполнение в thread pool.
> Так же я сохраняю этот запрос в списке подобном ngx_posted_events. и
> устанавливаю атомарный флаг готовности ответа.
> В nginx в метод ngx_process_events_and_timers добавлю код, который
> проверит список с запросами и те у которых готов ответ на отправку
> вызовет соответственно
> ngx_http_send_header(r) и ngx_http_output_filter(r, out);
> 
> Дак вот у меня есть непонимание, где в коде nginx обнуляется
> ngx_posted_events ? Всё перерыл, не могу найти этот момент. Буду
> благодарен за помощь.

Обработкой posted-событий занимается ngx_event_process_posted(), 
и там же обработанные события из очереди удаляются.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



Подробная информация о списке рассылки nginx-ru