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