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/11/13 00:44:42 UTC

svn commit: r594347 - in /perl/modperl/branches/threading: ./ t/response/TestModperl/ xs/ModPerl/Interpreter/ xs/maps/ xs/tables/current/Apache2/ xs/tables/current/ModPerl/

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 <to...@gmx.net>
Message-Id: <20...@gmx.net>


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'
       }
     ]
   }