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 go...@apache.org on 2007/05/15 00:43:37 UTC
svn commit: r538007 - in /perl/modperl/trunk: Changes
src/modules/perl/mod_perl.c
Author: gozer
Date: Mon May 14 15:43:35 2007
New Revision: 538007
URL: http://svn.apache.org/viewvc?view=rev&rev=538007
Log:
Don't waste an extra interpreter anymore under threaded MPMs when using a
modperl handler. Do just like modperl_handler_cgi does and make sure to
reuse the current interpreter for the response phase.
Submitted-By: Torsten Foertsch <to...@gmx.net>
Reviewed-By: Philippe M. Chiasson
Message-Id: <20...@gmx.net>
Modified:
perl/modperl/trunk/Changes
perl/modperl/trunk/src/modules/perl/mod_perl.c
Modified: perl/modperl/trunk/Changes
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?view=diff&rev=538007&r1=538006&r2=538007
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Mon May 14 15:43:35 2007
@@ -12,6 +12,9 @@
=item 2.0.4-dev
+Don't waste an extra interpreter anymore under threaded MPMs when using a
+modperl handler [Torsten Foertsch]
+
Fix a bug that could cause a crash when using $r->push_handlers() multiple
times for a phase that has no configured handlers [Torsten Foertsch]
Modified: perl/modperl/trunk/src/modules/perl/mod_perl.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/mod_perl.c?view=diff&rev=538007&r1=538006&r2=538007
==============================================================================
--- perl/modperl/trunk/src/modules/perl/mod_perl.c (original)
+++ perl/modperl/trunk/src/modules/perl/mod_perl.c Mon May 14 15:43:35 2007
@@ -1015,6 +1015,7 @@
int modperl_response_handler(request_rec *r)
{
MP_dDCFG;
+ MP_dRCFG;
apr_status_t retval;
#ifdef USE_ITHREADS
@@ -1029,6 +1030,9 @@
#ifdef USE_ITHREADS
interp = modperl_interp_select(r, r->connection, r->server);
aTHX = interp->perl;
+ if (MpInterpPUTBACK(interp)) {
+ rcfg->interp = interp;
+ }
#endif
/* default is -SetupEnv, add if PerlOption +SetupEnv */
@@ -1041,6 +1045,7 @@
#ifdef USE_ITHREADS
if (MpInterpPUTBACK(interp)) {
/* PerlInterpScope handler */
+ rcfg->interp = NULL;
modperl_interp_unselect(interp);
}
#endif