geoff 2003/12/01 09:28:36
Modified: src/modules/perl mod_perl.c t/response/TestAPI query.pm t/response/TestAPR os.pm xs/Apache/MPM Apache__MPM.h Log: Apache::MPM->is_threaded() replaces Apache::MPM_IS_THREADED Revision Changes Path 1.204 +0 -4 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.203 retrieving revision 1.204 diff -u -r1.203 -r1.204 --- mod_perl.c 3 Nov 2003 23:31:19 -0000 1.203 +++ mod_perl.c 1 Dec 2003 17:28:36 -0000 1.204 @@ -52,7 +52,6 @@ static void modperl_boot(pTHX_ void *data) { MP_dBOOT_DATA; - MP_dSCFG(s); int i; modperl_env_clear(aTHX); @@ -70,9 +69,6 @@ /* outside mod_perl this is done by ModPerl::Const.xs */ newXS("ModPerl::Const::compile", XS_modperl_const_compile, __FILE__); - - newCONSTSUB(PL_defstash, "Apache::MPM_IS_THREADED", - newSViv(scfg->threaded_mpm)); #ifdef MP_PERL_5_6_x /* make sure DynaLoader is loaded before XSLoader 1.2 +35 -2 modperl-2.0/t/response/TestAPI/query.pm Index: query.pm =================================================================== RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/query.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- query.pm 1 Dec 2003 17:14:16 -0000 1.1 +++ query.pm 1 Dec 2003 17:28:36 -0000 1.2 @@ -15,7 +15,7 @@ my $r = shift; - plan $r, tests => 3; + plan $r, tests => 5; # ok, this isn't particularly pretty, but I can't think # of a better way to do it @@ -33,6 +33,16 @@ ok t_cmp(Apache::MPMQ_NOT_SUPPORTED, $query, "MPMQ_IS_THREADED ($mpm)"); + + # is_threaded() is just a constsub set to the result from + # ap_mpm_query(AP_MPMQ_IS_THREADED) + + ok t_cmp($query, + Apache::MPM->is_threaded, + "Apache::MPM->is_threaded() equivalent to query(MPMQ_IS_THREADED)"); + + t_debug('Apache::MPM->is_threaded returned ' . Apache::MPM->is_threaded); + ok (! Apache::MPM->is_threaded); } { @@ -50,8 +60,15 @@ my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED); ok t_cmp(Apache::MPMQ_STATIC, - $query, + $query, "MPMQ_IS_THREADED ($mpm)"); + + ok t_cmp($query, + Apache::MPM->is_threaded, + "Apache::MPM->is_threaded() equivalent to query(MPMQ_IS_THREADED)"); + + t_debug('Apache::MPM->is_threaded returned ' . Apache::MPM->is_threaded); + ok (Apache::MPM->is_threaded); } { @@ -70,6 +87,13 @@ ok t_cmp(Apache::MPMQ_STATIC, $query, "MPMQ_IS_THREADED ($mpm)"); + + ok t_cmp($query, + Apache::MPM->is_threaded, + "Apache::MPM->is_threaded() equivalent to query(MPMQ_IS_THREADED)"); + + t_debug('Apache::MPM->is_threaded returned ' . Apache::MPM->is_threaded); + ok (Apache::MPM->is_threaded); } { @@ -88,6 +112,13 @@ ok t_cmp(Apache::MPMQ_STATIC, $query, "MPMQ_IS_THREADED ($mpm)"); + + ok t_cmp($query, + Apache::MPM->is_threaded, + "Apache::MPM->is_threaded() equivalent to query(MPMQ_IS_THREADED)"); + + t_debug('Apache::MPM->is_threaded returned ' . Apache::MPM->is_threaded); + ok (Apache::MPM->is_threaded); } { @@ -100,7 +131,9 @@ } else { skip "skipping MPMQ_IS_THREADED test for $mpm MPM", 0; + skip "skipping Apache::MPM->is_threaded equivalence test for $mpm MPM", 0; skip "skipping MPMQ_IS_FORKED test for $mpm MPM", 0; + skip "skipping Apache::MPM->is_threaded test for $mpm MPM", 0; } # make sure that an undefined MPMQ constant yields undef 1.4 +2 -1 modperl-2.0/t/response/TestAPR/os.pm Index: os.pm =================================================================== RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/os.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- os.pm 23 May 2002 19:49:49 -0000 1.3 +++ os.pm 1 Dec 2003 17:28:36 -0000 1.4 @@ -6,6 +6,7 @@ use Apache::Test; use Apache::TestUtil; +use Apache::MPM (); use APR::OS (); use Apache::Const -compile => 'OK'; @@ -15,7 +16,7 @@ plan $r, tests => 2; - if (Apache::MPM_IS_THREADED) { + if (Apache::MPM->is_threaded) { my $id = APR::OS::thread_current(); ok t_cmp("$id", "$id", "current thread"); ok t_cmp($$id, $$id, "current thread"); 1.3 +21 -2 modperl-2.0/xs/Apache/MPM/Apache__MPM.h Index: Apache__MPM.h =================================================================== RCS file: /home/cvs/modperl-2.0/xs/Apache/MPM/Apache__MPM.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Apache__MPM.h 1 Dec 2003 17:14:16 -0000 1.2 +++ Apache__MPM.h 1 Dec 2003 17:28:36 -0000 1.3 @@ -13,9 +13,28 @@ static void mpxs_Apache__MPM_BOOT(pTHX) { - /* implement Apache::MPM->show as a constant subroutine - * since this information will never + /* implement Apache::MPM->show and Apache::MPM->is_threaded + * as constant subroutines, since this information will never * change during an interpreter's lifetime */ + + int mpm_query_info; + + apr_status_t retval = ap_mpm_query(AP_MPMQ_IS_THREADED, &mpm_query_info); + + if (retval == APR_SUCCESS) { + MP_TRACE_g(MP_FUNC, "defined Apache::MPM->is_threaded() as %i\n", + mpm_query_info); + + newCONSTSUB(PL_defstash, "Apache::MPM::is_threaded", + newSViv(mpm_query_info)); + } + else { + /* assign false (0) to sub if ap_mpm_query didn't succeed */ + MP_TRACE_g(MP_FUNC, "defined Apache::MPM->is_threaded() as 0\n"); + + newCONSTSUB(PL_defstash, "Apache::MPM::is_threaded", + newSViv(0)); + } MP_TRACE_g(MP_FUNC, "defined Apache::MPM->show() as %s\n", ap_show_mpm());