Author: gozer Date: Mon Nov 12 15:44:37 2007 New Revision: 594347 URL: http://svn.apache.org/viewvc?rev=594347&view=rev Log: Expose modperl_interp_pool_t via ModPerl::InterpPool, modperl_tipool_t via ModPerl::TiPool and modperl_tipool_config_t via ModPerl::TiPoolConfig
Reviewed-By: Gozer Submitted-By: Torsten Foertsch <[EMAIL PROTECTED]> Message-Id: <[EMAIL PROTECTED]> Modified: perl/modperl/branches/threading/Changes perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm perl/modperl/branches/threading/xs/ModPerl/Interpreter/ModPerl__Interpreter.h 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 perl/modperl/branches/threading/xs/tables/current/Apache2/StructureTable.pm perl/modperl/branches/threading/xs/tables/current/ModPerl/FunctionTable.pm Modified: perl/modperl/branches/threading/Changes URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/Changes?rev=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/Changes (original) +++ perl/modperl/branches/threading/Changes Mon Nov 12 15:44:37 2007 @@ -12,6 +12,10 @@ =item 2.0.4-dev +Expose modperl_interp_pool_t via ModPerl::InterpPool, modperl_tipool_t +via ModPerl::TiPool and modperl_tipool_config_t via ModPerl::TiPoolConfig +[Torsten Foertsch] + Expose modperl_interp_t via ModPerl::Interpreter [Torsten Foertsch] PerlCleanupHandler are now registered with a subpool of $r->pool, 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=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm (original) +++ perl/modperl/branches/threading/t/response/TestModperl/interpreter.pm Mon Nov 12 15:44:37 2007 @@ -1,7 +1,5 @@ package TestModperl::interpreter; -# Modperl::Util tests - use strict; use warnings FATAL => 'all'; @@ -9,22 +7,68 @@ use Apache::TestUtil; use ModPerl::Interpreter (); +use ModPerl::InterpPool (); +use ModPerl::TiPool (); +use ModPerl::TiPoolConfig (); +use Apache2::MPM (); use Apache2::Const -compile => 'OK'; sub handler { my $r = shift; - plan $r, tests => 5; - - my $interp = ModPerl::Interpreter::current(); - print STDERR Dumper($interp); use Data::Dumper; - ok t_cmp ref($interp), 'ModPerl::Interpreter'; - - ok $interp->num_requests > 0; - ok $interp->refcnt > 0; - ok $interp->mip > 0; - ok $interp->perl > 0; + my $is_threaded=Apache2::MPM->is_threaded; + + plan $r, tests => $is_threaded?17:5; + + my $interp = ModPerl::Interpreter->current; + + ok t_cmp(ref($interp), 'ModPerl::Interpreter', + 'interp is a ModPerl::Interpreter'); + + ok t_cmp($$interp==${ModPerl::Interpreter::current()}, !!1, + 'ModPerl::Interpreter->current == ModPerl::Interpreter::current'); + + my $mip = $interp->mip; + + ok t_cmp(ref($mip), 'ModPerl::InterpPool', + 'interp->mip is a ModPerl::InterpPool'); + + ok t_cmp(${$mip->server}==${$r->server}, !!1, + 'mip->server == r->server'); + + ok t_cmp(ref($mip->parent), 'ModPerl::Interpreter', + 'mip->parent is a ModPerl::Interpreter'); + + if($is_threaded) { + ok t_cmp($interp->perl!=0, !!1, 'interp->perl'); + ok t_cmp($interp->num_requests>0, !!1, 'interp->num_requests'); + ok t_cmp($interp->refcnt>0, !!1, 'interp->refcnt'); + + my $tipool = $mip->tipool; + + ok t_cmp(ref($tipool), 'ModPerl::TiPool', + 'mip->tipool is a ModPerl::TiPool'); + + ok t_cmp($tipool->in_use!=0, !!1, 'tipool->in_use'); + + ok t_cmp($tipool->size!=0, !!1, 'tipool->size'); + + my $tipcfg = $tipool->cfg; + + ok t_cmp(ref($tipcfg), 'ModPerl::TiPoolConfig', + 'tipool->cfg is a ModPerl::TiPoolConfig'); + + ok t_cmp($tipcfg->start!=0, !!1, 'tipcfg->start'); + + ok t_cmp($tipcfg->min_spare!=0, !!1, 'tipcfg->min_spare'); + + ok t_cmp($tipcfg->max_spare!=0, !!1, 'tipcfg->max_spare'); + + ok t_cmp($tipcfg->max!=0, !!1, 'tipcfg->max'); + + ok t_cmp($tipcfg->max_requests!=0, !!1, 'tipcfg->max_requests'); + } Apache2::Const::OK; } Modified: perl/modperl/branches/threading/xs/ModPerl/Interpreter/ModPerl__Interpreter.h URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/xs/ModPerl/Interpreter/ModPerl__Interpreter.h?rev=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/ModPerl/Interpreter/ModPerl__Interpreter.h (original) +++ perl/modperl/branches/threading/xs/ModPerl/Interpreter/ModPerl__Interpreter.h Mon Nov 12 15:44:37 2007 @@ -15,7 +15,7 @@ */ static MP_INLINE -modperl_interp_t *mpxs_ModPerl__Interpreter_current(pTHX) +modperl_interp_t *mpxs_ModPerl__Interpreter_current(pTHX_ SV *class) { return MP_THX_INTERP_GET(aTHX); } 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=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/maps/modperl_functions.map (original) +++ perl/modperl/branches/threading/xs/maps/modperl_functions.map Mon Nov 12 15:44:37 2007 @@ -164,4 +164,4 @@ mpxs_Apache2__RequestRec_allow_override_opts MODULE=ModPerl::Interpreter - mpxs_ModPerl__Interpreter_current + mpxs_ModPerl__Interpreter_current | | class=Nullsv 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=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/maps/modperl_structures.map (original) +++ perl/modperl/branches/threading/xs/maps/modperl_structures.map Mon Nov 12 15:44:37 2007 @@ -12,3 +12,29 @@ < refcnt - tid </modperl_interp_t> + +<modperl_interp_pool_t> +< server +< tipool +< parent +</modperl_interp_pool_t> + +<modperl_tipool_t> +- tiplock +- available +- idle +- busy +< in_use +< size +- data +< cfg +- func +</modperl_tipool_t> + +<modperl_tipool_config_t> +< start +< min_spare +< max_spare +< max +< max_requests +</modperl_tipool_config_t> 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=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/maps/modperl_types.map (original) +++ perl/modperl/branches/threading/xs/maps/modperl_types.map Mon Nov 12 15:44:37 2007 @@ -1,9 +1,11 @@ ########## mod_perl types ########## -struct modperl_filter_t | Apache2::OutputFilter -struct modperl_interp_t | ModPerl::Interpreter -modperl_interp_pool_t * | IV -PerlInterpreter * | IV +struct modperl_filter_t | Apache2::OutputFilter +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 ########## Perl types ########## Modified: perl/modperl/branches/threading/xs/tables/current/Apache2/StructureTable.pm URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/xs/tables/current/Apache2/StructureTable.pm?rev=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/tables/current/Apache2/StructureTable.pm (original) +++ perl/modperl/branches/threading/xs/tables/current/Apache2/StructureTable.pm Mon Nov 12 15:44:37 2007 @@ -3366,6 +3366,93 @@ 'name' => 'tid' } ] + }, + { + 'type' => 'modperl_interp_pool_t', + 'elts' => [ + { + 'type' => 'server_rec *', + 'name' => 'server' + }, + { + 'type' => 'modperl_tipool_t *', + 'name' => 'tipool' + }, + { + 'type' => 'modperl_tipool_config_t *', + 'name' => 'tipool_cfg' + }, + { + 'type' => 'modperl_interp_t *', + 'name' => 'parent' + } + ] + }, + { + 'type' => 'modperl_tipool_t', + 'elts' => [ + { + 'type' => 'perl_mutex', + 'name' => 'tiplock' + }, + { + 'type' => 'perl_cond', + 'name' => 'available' + }, + { + 'type' => 'modperl_list_t *', + 'name' => 'idle' + }, + { + 'type' => 'modperl_list_t *', + 'name' => 'busy' + }, + { + 'type' => 'int', + 'name' => 'in_use' + }, + { + 'type' => 'int', + 'name' => 'size' + }, + { + 'type' => 'void *', + 'name' => 'data' + }, + { + 'type' => 'modperl_tipool_config_t *', + 'name' => 'cfg' + }, + { + 'type' => 'modperl_tipool_vtbl_t *', + 'name' => 'func' + } + ] + }, + { + 'type' => 'modperl_tipool_config_t', + 'elts' => [ + { + 'type' => 'int', + 'name' => 'start' + }, + { + 'type' => 'int', + 'name' => 'min_spare' + }, + { + 'type' => 'int', + 'name' => 'max_spare' + }, + { + 'type' => 'int', + 'name' => 'max' + }, + { + 'type' => 'int', + 'name' => 'max_requests' + } + ] } ]; Modified: perl/modperl/branches/threading/xs/tables/current/ModPerl/FunctionTable.pm URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/xs/tables/current/ModPerl/FunctionTable.pm?rev=594347&r1=594346&r2=594347&view=diff ============================================================================== --- perl/modperl/branches/threading/xs/tables/current/ModPerl/FunctionTable.pm (original) +++ perl/modperl/branches/threading/xs/tables/current/ModPerl/FunctionTable.pm Mon Nov 12 15:44:37 2007 @@ -8211,6 +8211,10 @@ { 'type' => 'PerlInterpreter *', 'name' => 'my_perl' + }, + { + 'type' => 'SV *', + 'name' => 'class' } ] }