Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx + libfcgi
По-видимому, по какой-то причине только один поток отрабатывает FCGX_Accept_r.
Кстати, делать FCGX_Request* rq = new FCGX_Request небезопасно, rq может утечь.
Лучше делать так же как в примере.
----- User <nginx-forum@xxxxxxxx> wrote:
> > Нужен пример того как раздаются
> запросы, чтобы понять что там
> происходит.
>
> Каждый поток проходит FCGX_Accept_r
> сомостоятельно, примерный код:
>
>
> while (true){
> static pthread_mutex_t accept_mutex =
> PTHREAD_MUTEX_INITIALIZER;
>
> pthread_mutex_lock(&accept_mutex);
> FCGX_Request* rq = new FCGX_Request;
> FCGX_InitRequest(rq, f_socket, 0);
> FCGX_Accept_r(rq);
> pthread_mutex_unlock(&accept_mutex);
> /* ... здесь обработка запроса ... */
> FCGX_Finish_r(rq);
> delete rq;
> }
>
> Метод соответствует примеру threaded.c из
> поставки libfcgi. По идее она должна быть
> на это расчитана.
>
> Вообще я сначала подумал, что libfcgi не
> принимает новый запрос до того, как
> обработается (FCGX_Finish_r), а потом
> догадался останавливать
> обрабатывающий поток совсем ( т.е.
> обработка запроcа не будет завершена
> никогда)
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,181273,181296#msg-181296
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
--
Regards,
Valery Kholodkov
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|