Author: torsten Date: Sun May 2 18:45:49 2010 New Revision: 940297 URL: http://svn.apache.org/viewvc?rev=940297&view=rev Log: now it compiles and tests with a non-threaded perl
Modified: perl/modperl/branches/threading/src/modules/perl/modperl_cmd.c perl/modperl/branches/threading/src/modules/perl/modperl_types.h perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm perl/modperl/branches/threading/t/response/TestPerl/ithreads3.pm perl/modperl/branches/threading/xs/maps/modperl_functions.map perl/modperl/branches/threading/xs/maps/modperl_structures.map perl/modperl/branches/threading/xs/maps/modperl_types.map Modified: perl/modperl/branches/threading/src/modules/perl/modperl_cmd.c URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_cmd.c?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/src/modules/perl/modperl_cmd.c (original) +++ perl/modperl/branches/threading/src/modules/perl/modperl_cmd.c Sun May 2 18:45:49 2010 @@ -556,8 +556,10 @@ MP_CMD_SRV_DECLARE(perldo) arg, NULL); } +#ifdef USE_ITHREADS MP_TRACE_i(MP_FUNC, "using interp %lx to execute perl section:\n%s", scfg->mip->parent, arg); +#endif { SV *server = MP_PERLSECTIONS_SERVER_SV; Modified: perl/modperl/branches/threading/src/modules/perl/modperl_types.h URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_types.h?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/src/modules/perl/modperl_types.h (original) +++ perl/modperl/branches/threading/src/modules/perl/modperl_types.h Sun May 2 18:45:49 2010 @@ -40,6 +40,8 @@ typedef struct { server_rec *s; } modperl_rcs_t; +typedef struct modperl_config_con_t modperl_config_con_t; + #ifdef USE_ITHREADS typedef struct modperl_list_t modperl_list_t; @@ -52,7 +54,7 @@ struct modperl_list_t { typedef struct modperl_interp_t modperl_interp_t; typedef struct modperl_interp_pool_t modperl_interp_pool_t; typedef struct modperl_tipool_t modperl_tipool_t; -typedef struct modperl_config_con_t modperl_config_con_t; +typedef struct modperl_tipool_config_t modperl_tipool_config_t; struct modperl_interp_t { modperl_interp_pool_t *mip; @@ -80,13 +82,13 @@ typedef struct { modperl_list_t *listp); } modperl_tipool_vtbl_t; -typedef struct { +typedef struct modperl_tipool_config_t { int start; /* number of items to create at startup */ int min_spare; /* minimum number of spare items */ int max_spare; /* maximum number of spare items */ int max; /* maximum number of items */ int max_requests; /* maximum number of requests per item */ -} modperl_tipool_config_t; +}; struct modperl_tipool_t { perl_mutex tiplock; Modified: perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm (original) +++ perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm Sun May 2 18:45:49 2010 @@ -7,10 +7,6 @@ use warnings FATAL => 'all'; use Apache::Test; use Apache::TestUtil; -use ModPerl::Interpreter (); -use ModPerl::InterpPool (); -use ModPerl::TiPool (); -use ModPerl::TiPoolConfig (); use Apache2::MPM (); use Apache2::Const -compile => 'OK'; @@ -20,7 +16,14 @@ sub handler { my $is_threaded=Apache2::MPM->is_threaded; - plan $r, tests => $is_threaded?17:5; + plan $r, tests => $is_threaded?17:5, need + need_threads, + {"perl >= 5.8.1 is required (this is $])" => ($] >= 5.008001)}; + + require ModPerl::Interpreter; + require ModPerl::InterpPool; + require ModPerl::TiPool; + require ModPerl::TiPoolConfig; my $interp = ModPerl::Interpreter->current; Modified: perl/modperl/branches/threading/t/response/TestPerl/ithreads3.pm URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/t/response/TestPerl/ithreads3.pm?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/t/response/TestPerl/ithreads3.pm (original) +++ perl/modperl/branches/threading/t/response/TestPerl/ithreads3.pm Sun May 2 18:45:49 2010 @@ -10,7 +10,6 @@ use Apache2::RequestUtil (); use Apache2::Connection (); use Apache2::ConnectionUtil (); use APR::Pool (); -use ModPerl::Interpreter (); use ModPerl::Util (); use APR::Table (); use Apache2::Const -compile => 'OK', 'DECLINED'; @@ -24,12 +23,21 @@ use Apache2::Const -compile => 'OK', 'DE sub DESTROY {my $f=shift @{$_[0]}; $f->(@{$_[0]});} } +sub current_interp { + use Config; + if ($Config{useithreads} and + $Config{useithreads} eq 'define') { + require ModPerl::Interpreter; + ModPerl::Interpreter::current(); + } +} + sub init { my $r=shift; return Apache2::Const::DECLINED unless( $r->is_initial_req ); - my $interp=ModPerl::Interpreter::current; + my $interp=current_interp; $r->connection->notes->{interp}=join(':', $$interp, $interp->num_requests); $r->connection->notes->{refcnt}=$interp->refcnt; @@ -41,7 +49,7 @@ sub add { return Apache2::Const::DECLINED unless( $r->is_initial_req ); - my $interp=ModPerl::Interpreter::current; + my $interp=current_interp; $r->connection->notes->{interp}.=','.join(':', $$interp, $interp->num_requests); $r->connection->notes->{refcnt}.=','.$interp->refcnt; Modified: perl/modperl/branches/threading/xs/maps/modperl_functions.map URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/xs/maps/modperl_functions.map?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/maps/modperl_functions.map (original) +++ perl/modperl/branches/threading/xs/maps/modperl_functions.map Sun May 2 18:45:49 2010 @@ -165,5 +165,9 @@ MODULE=Apache2::MPM PACKAGE=Apache2:: MODULE=Apache2::Access PACKAGE=guess mpxs_Apache2__RequestRec_allow_override_opts +#_if_ do {use Apache2::Build; Apache2::Build::PERL_HAS_ITHREADS} + MODULE=ModPerl::Interpreter mpxs_ModPerl__Interpreter_current | | class=Nullsv + +#_end_ Modified: perl/modperl/branches/threading/xs/maps/modperl_structures.map URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/xs/maps/modperl_structures.map?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/maps/modperl_structures.map (original) +++ perl/modperl/branches/threading/xs/maps/modperl_structures.map Sun May 2 18:45:49 2010 @@ -3,6 +3,8 @@ # for mapping see %ModPerl::MapUtil::disabled_map in # lib/ModPerl/MapUtil.pm +#_if_ do {use Apache2::Build; Apache2::Build::PERL_HAS_ITHREADS} + <modperl_interp_t> < mip < perl @@ -38,3 +40,5 @@ < max < max_requests </modperl_tipool_config_t> + +#_end_ Modified: perl/modperl/branches/threading/xs/maps/modperl_types.map URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/xs/maps/modperl_types.map?rev=940297&r1=940296&r2=940297&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/maps/modperl_types.map (original) +++ perl/modperl/branches/threading/xs/maps/modperl_types.map Sun May 2 18:45:49 2010 @@ -1,12 +1,17 @@ ########## mod_perl types ########## struct modperl_filter_t | Apache2::OutputFilter + +#_if_ do {use Apache2::Build; Apache2::Build::PERL_HAS_ITHREADS} + struct modperl_interp_t | ModPerl::Interpreter struct modperl_interp_pool_t | ModPerl::InterpPool struct modperl_tipool_t | ModPerl::TiPool struct modperl_tipool_config_t | ModPerl::TiPoolConfig PerlInterpreter * | IV +#_end_ + ########## Perl types ########## SV * | SV