dougm 01/03/14 17:47:00
Modified: src/modules/perl mod_perl.c
Log:
need to tear down interpreter in non-ithreads mode
Revision Changes Path
1.33 +21 -0 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- mod_perl.c 2001/03/14 08:22:47 1.32
+++ mod_perl.c 2001/03/15 01:47:00 1.33
@@ -1,5 +1,18 @@
#include "mod_perl.h"
+#ifndef USE_ITHREADS
+static apr_status_t modperl_shutdown(void *data)
+{
+ PerlInterpreter *perl = (PerlInterpreter *)data;
+ PL_perl_destruct_level = 2;
+ MP_TRACE_i(MP_FUNC, "destroying interpreter=0x%lx\n",
+ (unsigned long)perl);
+ perl_destruct(perl);
+ perl_free(perl);
+ return APR_SUCCESS;
+}
+#endif
+
PerlInterpreter *modperl_startup(server_rec *s, apr_pool_t *p)
{
MP_dSCFG(s);
@@ -38,12 +51,20 @@
perl_run(perl);
+ MP_TRACE_i(MP_FUNC, "constructed interpreter=0x%lx\n",
+ (unsigned long)perl);
+
#ifdef MP_USE_GTOP
MP_TRACE_m_do(
modperl_gtop_do_proc_mem_after(MP_FUNC ": perl_parse");
);
#endif
+#ifndef USE_ITHREADS
+ apr_pool_cleanup_register(p, (void*)perl,
+ modperl_shutdown, apr_pool_cleanup_null);
+#endif
+
return perl;
}