You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by ge...@apache.org on 2003/09/13 22:35:33 UTC
cvs commit: modperl-2.0/src/modules/perl modperl_callback.c modperl_filter.c modperl_interp.h
geoff 2003/09/13 13:35:33
Modified: src/modules/perl modperl_callback.c modperl_filter.c
modperl_interp.h
Log:
balance interpreter select/putback
Reviewed by: stas
Revision Changes Path
1.57 +1 -4 modperl-2.0/src/modules/perl/modperl_callback.c
Index: modperl_callback.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- modperl_callback.c 19 Aug 2003 05:01:22 -0000 1.56
+++ modperl_callback.c 13 Sep 2003 20:35:33 -0000 1.57
@@ -249,10 +249,7 @@
SvREFCNT_dec((SV*)av_args);
#ifdef USE_ITHREADS
- if (interp && MpInterpPUTBACK(interp)) {
- /* PerlInterpScope handler */
- modperl_interp_unselect(interp);
- }
+ MP_dINTERP_PUTBACK(interp);
#endif
return status;
1.67 +4 -0 modperl-2.0/src/modules/perl/modperl_filter.c
Index: modperl_filter.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- modperl_filter.c 20 Aug 2003 23:10:09 -0000 1.66
+++ modperl_filter.c 13 Sep 2003 20:35:33 -0000 1.67
@@ -359,6 +359,8 @@
SvREFCNT_dec((SV*)args);
+ MP_dINTERP_PUTBACK(interp);
+
MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
"return: %d\n", handler->name, status);
@@ -428,6 +430,8 @@
else {
MP_FAILURE_CROAK(modperl_output_filter_flush(filter));
}
+
+ MP_dINTERP_PUTBACK(interp);
MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
"return: %d\n", handler->name, status);
1.19 +7 -0 modperl-2.0/src/modules/perl/modperl_interp.h
Index: modperl_interp.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- modperl_interp.h 27 Aug 2002 01:43:25 -0000 1.18
+++ modperl_interp.h 13 Sep 2003 20:35:33 -0000 1.19
@@ -50,6 +50,11 @@
interp = modperl_interp_select(r, c, s); \
aTHX = interp->perl
+#define MP_dINTERP_PUTBACK(interp) \
+ if (interp && MpInterpPUTBACK(interp)) { \
+ modperl_interp_unselect(interp); \
+ }
+
#define MP_aTHX aTHX
apr_status_t modperl_interp_pool_destroy(void *data);
@@ -71,6 +76,8 @@
#else
#define MP_dINTERP_SELECT(r, c, s) dNOOP
+
+#define MP_dINTERP_PUTBACK(interp) dNOOP
#define MP_aTHX 0