ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Модуль на C++ - возможно?


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Модуль на C++ - возможно?
  • From: "Sergey S." <neavirc@xxxxxxxxx>
  • Date: Fri, 7 Mar 2008 07:55:48 -0800
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=BcA6CE6YaczGCRW+5wTpU0oBFHpD+U3VeJYL0J8htfA=; b=v6FdJSRVkMy4OyuM62r6H1V67Qyput3OByroh0LcjHr1ZLMd1dJ5NKSYbtEMGOEV4+8DfTOknwqixUg9483Q/Ir5PyS1xwwAS3sYHnrslgkQTBRGp1tuAlp68npWp8qwHtkDAEJsPXe8/3it866F0DGq7GulVz4e6VZp40XQrQI=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=iAjDK8EZ6id4jPkw2W/WtB+DbwDYoe5GGBUddM0DGQp80q61reB2KYHKkU3BsKyUJrhPy7VCIZ5HTGd5PKpHK4k3Fj5gGQz6/d1ruSAg454N215EvcSt/BPmtLIqz+m/xdFJJPuQuPKlApCykL7WmQC8MSEfd1x0TjgmwjH50DE=
  • In-reply-to: <20080303144631.GJ12928@xxxxxxxxxxxxx>
  • References: <47CC90A3.1010902@xxxxxxxxx> <20080303134350.GE12928@xxxxxxxxxxxxx> <47CCA53B.2030604@xxxxxxxxx> <20080303144631.GJ12928@xxxxxxxxxxxxx>

Здравствуйте.

Еще одна засада возникла =) В модуле используется map<string, string> для хранения конфигурации, и средствами nginx'а под нее память выделяется как-то неправильно. При обращении к контейнеру в обработчике для директив nginx падает в сегфолт.

Поэтому память приходится выделять так:

static void* ngx_http_test_create_loc_conf(ngx_conf_t *cf)
{
  ngx_http_test_loc_conf_t  *conf = new  ngx_http_test_loc_conf_t; // где ngx_http_test_loc_conf_t == map<string, string>

  return conf;
}

Вопрос: как ее правильно освобождать? Сейчас память освобождается в коллбеке (но есть подозрения, что могут быть последствия):

void ngx_http_test_exit_process(ngx_cycle_t* cycle)
{
  delete g_conf;
}

где g_conf - глобальный указатель на map<string,string>.

С уважением,
Сергей Самохин.


 




Copyright © Lexa Software, 1996-2009.