dougm 01/03/14 18:17:36 Modified: src/modules/perl mod_perl.c modperl_apache_includes.h modperl_config.c modperl_interp.c modperl_types.h Log: if mpm is not threaded, dont create any clones, use the server parent Perl to serve requests Revision Changes Path 1.35 +6 -1 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.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- mod_perl.c 2001/03/15 01:55:44 1.34 +++ mod_perl.c 2001/03/15 02:17:35 1.35 @@ -139,10 +139,15 @@ #ifdef USE_ITHREADS static void modperl_init_clones(server_rec *s, apr_pool_t *p) { -#ifdef MP_TRACE modperl_srv_config_t *base_scfg = modperl_srv_config_get(s); +#ifdef MP_TRACE char *base_name = modperl_server_desc(s, p); #endif /* MP_TRACE */ + + if (!base_scfg->threaded_mpm) { + MP_TRACE_i(MP_FUNC, "no clones created for non-threaded mpm\n"); + return; + } for (; s; s=s->next) { MP_dSCFG(s); 1.4 +1 -0 modperl-2.0/src/modules/perl/modperl_apache_includes.h Index: modperl_apache_includes.h =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_apache_includes.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- modperl_apache_includes.h 2001/02/28 05:35:08 1.3 +++ modperl_apache_includes.h 2001/03/15 02:17:35 1.4 @@ -16,6 +16,7 @@ #include "http_request.h" #include "http_connection.h" #include "http_core.h" +#include "ap_mpm.h" #include "apr_lock.h" #include "apr_strings.h" 1.21 +2 -0 modperl-2.0/src/modules/perl/modperl_config.c Index: modperl_config.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_config.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- modperl_config.c 2001/03/14 08:22:48 1.20 +++ modperl_config.c 2001/03/15 02:17:35 1.21 @@ -129,6 +129,8 @@ modperl_srv_config_t *scfg = modperl_srv_config_new(p); #ifdef USE_ITHREADS + ap_mpm_query(AP_MPMQ_IS_THREADED, &scfg->threaded_mpm); + scfg->interp_pool_cfg = (modperl_tipool_config_t *) apr_pcalloc(p, sizeof(*scfg->interp_pool_cfg)); 1.23 +9 -2 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.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- modperl_interp.c 2001/03/14 08:22:48 1.22 +++ modperl_interp.c 2001/03/15 02:17:35 1.23 @@ -212,14 +212,21 @@ apr_pool_t *p = NULL; request_rec *r = rr; int is_subrequest = (rr && rr->main) ? 1 : 0; + modperl_interp_lifetime_e lifetime; + if (!scfg->threaded_mpm) { + MP_TRACE_i(MP_FUNC, "using parent 0x%lx for non-threaded mpm\n", + (unsigned long)scfg->mip->parent); + return scfg->mip->parent; + } + /* * if a per-dir PerlInterpLifetime is specified, use it. * else if r != NULL use per-server PerlInterpLifetime * else lifetime must be per-connection */ - modperl_interp_lifetime_e lifetime = - (dcfg && !modperl_interp_lifetime_undef(dcfg)) ? + + lifetime = (dcfg && !modperl_interp_lifetime_undef(dcfg)) ? dcfg->interp_lifetime : (r ? scfg->interp_lifetime : MP_INTERP_LIFETIME_CONNECTION); 1.25 +1 -0 modperl-2.0/src/modules/perl/modperl_types.h Index: modperl_types.h =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- modperl_types.h 2001/03/14 08:22:48 1.24 +++ modperl_types.h 2001/03/15 02:17:35 1.25 @@ -128,6 +128,7 @@ modperl_interp_pool_t *mip; modperl_tipool_config_t *interp_pool_cfg; modperl_interp_lifetime_e interp_lifetime; + int threaded_mpm; #else PerlInterpreter *perl; #endif