aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-11-17 10:28:12 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-11-17 10:28:12 +0000
commit889fa8debb8230bd35dfe1f67695a84661ad7daa (patch)
tree3f67f659f7c326c669d19a36a0b7b0894aa0b31f
parent69061b73ef0e4fdb1063bff0383098449d313a52 (diff)
downloadnginx-889fa8debb8230bd35dfe1f67695a84661ad7daa.tar.gz
nginx-889fa8debb8230bd35dfe1f67695a84661ad7daa.zip
use global perl variable in perl_destruct()/perl_free()
for non-mulitiplicity perl
-rw-r--r--src/http/modules/perl/ngx_http_perl_module.c27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c
index 642197fd8..eb6407e21 100644
--- a/src/http/modules/perl/ngx_http_perl_module.c
+++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -152,12 +152,13 @@ static ngx_http_ssi_command_t ngx_http_perl_ssi_command = {
#endif
-static ngx_str_t ngx_null_name = ngx_null_string;
-
-static HV *nginx_stash;
+static ngx_str_t ngx_null_name = ngx_null_string;
+static HV *nginx_stash;
#if (NGX_HAVE_PERL_MULTIPLICITY)
-static ngx_uint_t ngx_perl_term;
+static ngx_uint_t ngx_perl_term;
+#else
+static PerlInterpreter *perl;
#endif
@@ -461,18 +462,16 @@ ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx,
static char *
ngx_http_perl_init_interpreter(ngx_conf_t *cf, ngx_http_perl_main_conf_t *pmcf)
{
- ngx_str_t *m;
- ngx_uint_t i;
+ ngx_str_t *m;
+ ngx_uint_t i;
#if (NGX_HAVE_PERL_MULTIPLICITY)
- ngx_pool_cleanup_t *cln;
+ ngx_pool_cleanup_t *cln;
cln = ngx_pool_cleanup_add(cf->pool, 0);
if (cln == NULL) {
return NGX_CONF_ERROR;
}
-#else
- static PerlInterpreter *perl;
#endif
#ifdef NGX_PERL_MODULES
@@ -1067,16 +1066,12 @@ ngx_http_perl_exit(ngx_cycle_t *cycle)
ngx_perl_term = 1;
#else
- ngx_http_perl_main_conf_t *pmcf;
-
- pmcf = ngx_http_cycle_get_module_main_conf(cycle, ngx_http_perl_module);
-
- if (pmcf && nginx_stash) {
+ if (nginx_stash) {
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, cycle->log, 0, "perl term");
- (void) perl_destruct(pmcf->perl);
+ (void) perl_destruct(perl);
- perl_free(pmcf->perl);
+ perl_free(perl);
PERL_SYS_TERM();
}