dougm 01/11/01 15:50:32
Modified: src/modules/perl mod_perl.c modperl_interp.c modperl_perl.c
modperl_perl.h
Log:
moving perl_destruct() and releated items into modperl_perl_destruct() wrapper
Revision Changes Path
1.93 +1 -3 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.92
retrieving revision 1.93
diff -u -r1.92 -r1.93
--- mod_perl.c 2001/10/13 19:11:32 1.92
+++ mod_perl.c 2001/11/01 23:50:32 1.93
@@ -9,12 +9,10 @@
handles = modperl_xs_dl_handles_get(aTHX_ cdata->pool);
- PL_perl_destruct_level = 2;
MP_TRACE_i(MP_FUNC, "destroying interpreter=0x%lx\n",
(unsigned long)perl);
- perl_destruct(perl);
- perl_free(perl);
+ modperl_perl_destruct(perl);
if (handles) {
modperl_xs_dl_handles_close(cdata->pool, handles);
1.37 +1 -12 modperl-2.0/src/modules/perl/modperl_interp.c
Index: modperl_interp.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- modperl_interp.c 2001/10/21 22:10:11 1.36
+++ modperl_interp.c 2001/11/01 23:50:32 1.37
@@ -83,9 +83,6 @@
MP_TRACE_i(MP_FUNC, "*error - still in use!*\n");
}
- PERL_SET_CONTEXT(interp->perl);
- PL_perl_destruct_level = 2;
-
/* we cant use interp->mip->ap_pool without locking
* apr_pool_create() will mutex lock for us
* XXX: could roll something without using apr_pool_t
@@ -93,16 +90,8 @@
*/
(void)apr_pool_create(&p, NULL);
handles = modperl_xs_dl_handles_get(aTHX_ p);
-
- perl_destruct(interp->perl);
- /* XXX: big bug in 5.6.1 fixed in 5.7.2+
- * XXX: see CLONEf_CLONE_HOST perl_clone() flag
- * XXX: try to find a workaround for 5.6.1
- */
-#ifndef WIN32
- perl_free(interp->perl);
-#endif
+ modperl_perl_destruct(interp->perl);
if (handles) {
modperl_xs_dl_handles_close(p, handles);
1.7 +19 -0 modperl-2.0/src/modules/perl/modperl_perl.c
Index: modperl_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- modperl_perl.c 2001/10/21 05:46:47 1.6
+++ modperl_perl.c 2001/11/01 23:50:32 1.7
@@ -82,3 +82,22 @@
modperl_perl_init_ids(aTHX_ &ids);
#endif
}
+
+void modperl_perl_destruct(PerlInterpreter *perl)
+{
+ dTHXa(perl);
+
+ PERL_SET_CONTEXT(perl);
+
+ PL_perl_destruct_level = 2;
+
+ perl_destruct(perl);
+
+ /* XXX: big bug in 5.6.1 fixed in 5.7.2+
+ * XXX: see CLONEf_CLONE_HOST perl_clone() flag
+ * XXX: try to find a workaround for 5.6.1
+ */
+#ifndef WIN32
+ perl_free(perl);
+#endif
+}
1.7 +2 -0 modperl-2.0/src/modules/perl/modperl_perl.h
Index: modperl_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- modperl_perl.h 2001/10/21 05:46:47 1.6
+++ modperl_perl.h 2001/11/01 23:50:32 1.7
@@ -11,4 +11,6 @@
void modperl_perl_init_ids_server(server_rec *s);
+void modperl_perl_destruct(PerlInterpreter *perl);
+
#endif /* MODPERL_PERL_H */