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 st...@apache.org on 2005/04/29 00:24:45 UTC

svn commit: r165215 - in /perl/modperl/branches/clone-skip-unstable: ModPerl-Registry/t/ lib/ModPerl/ src/modules/perl/ t/apr-ext/ t/conf/ t/lib/TestAPRlib/ t/lib/TestCommon/ t/perl/ t/response/TestAPR/ t/response/TestDirective/ t/response/TestPerl/ xs/APR/APR/ xs/APR/Const/ xs/APR/PerlIO/ xs/Apache2/Const/ xs/ModPerl/Const/

Author: stas
Date: Thu Apr 28 15:24:43 2005
New Revision: 165215

URL: http://svn.apache.org/viewcvs?rev=165215&view=rev
Log:
merge the right branch: CLONE_SKIP support

Modified:
    perl/modperl/branches/clone-skip-unstable/ModPerl-Registry/t/ithreads.t
    perl/modperl/branches/clone-skip-unstable/lib/ModPerl/WrapXS.pm
    perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io_apache.c
    perl/modperl/branches/clone-skip-unstable/t/apr-ext/pool.t
    perl/modperl/branches/clone-skip-unstable/t/apr-ext/table.t
    perl/modperl/branches/clone-skip-unstable/t/conf/modperl_extra.pl
    perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/pool.pm
    perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/table.pm
    perl/modperl/branches/clone-skip-unstable/t/lib/TestCommon/Utils.pm
    perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t
    perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm
    perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/table.pm
    perl/modperl/branches/clone-skip-unstable/t/response/TestDirective/cmdparms.pm
    perl/modperl/branches/clone-skip-unstable/t/response/TestPerl/ithreads_cloning.pm
    perl/modperl/branches/clone-skip-unstable/xs/APR/APR/APR.pm
    perl/modperl/branches/clone-skip-unstable/xs/APR/Const/Const.pm
    perl/modperl/branches/clone-skip-unstable/xs/APR/PerlIO/PerlIO.pm
    perl/modperl/branches/clone-skip-unstable/xs/Apache2/Const/Const.pm
    perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Const/Const.pm

Modified: perl/modperl/branches/clone-skip-unstable/ModPerl-Registry/t/ithreads.t
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/ModPerl-Registry/t/ithreads.t?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/ModPerl-Registry/t/ithreads.t (original)
+++ perl/modperl/branches/clone-skip-unstable/ModPerl-Registry/t/ithreads.t Thu Apr 28 15:24:43 2005
@@ -9,8 +9,12 @@
 
 use constant HAS_ITHREADS => ($] >= 5.008001 && $Config{useithreads});
 
-plan tests => 1, need
-    {"perl 5.8.1 or higher w/ithreads enabled is required" => HAS_ITHREADS};
+#plan tests => 1, need
+#    {"perl 5.8.1 or higher w/ithreads enabled is required" => HAS_ITHREADS};
+
+# XXX: this test can not be run as it is, since $r is no longer
+# cloned, need to review if the problem is still relevant
+plan tests => 1, under_construction;
 
 {
     # the order of prints on the server side is not important here,

Modified: perl/modperl/branches/clone-skip-unstable/lib/ModPerl/WrapXS.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/lib/ModPerl/WrapXS.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/lib/ModPerl/WrapXS.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/lib/ModPerl/WrapXS.pm Thu Apr 28 15:24:43 2005
@@ -639,6 +639,8 @@
 our \$VERSION = '$version';
 $loader\::load __PACKAGE__;
 
+sub CLONE_SKIP { 1 } # mp2 API is not perl-ithread-clonable
+
 $code
 
 1;

Modified: perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io_apache.c
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io_apache.c?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io_apache.c (original)
+++ perl/modperl/branches/clone-skip-unstable/src/modules/perl/modperl_io_apache.c Thu Apr 28 15:24:43 2005
@@ -151,6 +151,8 @@
     PerlIOApache *st = PerlIOSelf(f, PerlIOApache);
     modperl_config_req_t *rcfg;
 
+    MP_TRACE_o(MP_FUNC, "try request_rec obj: 0x%lx", st->r);
+
     if (!st->r) {
         Perl_warn(aTHX_ "an attempt to flush a stale IO handle");
         return -1;
@@ -199,11 +201,32 @@
 static IV
 PerlIOApache_popped(pTHX_ PerlIO *f)
 {
-    /* XXX: just temp for tracing */
-    MP_TRACE_o(MP_FUNC, "done");
-    return PerlIOBase_popped(aTHX_ f);
+    IV code = PerlIOBase_popped(aTHX_ f);
+    PerlIOApache *st = PerlIOSelf(f, PerlIOApache);
+
+    MP_TRACE_o(MP_FUNC, "done with request_rec obj: 0x%lx", st->r);
+    /* prevent possible bugs where a stale r will be attempted to be
+     * reused (e.g. dupped filehandle) */
+    st->r = NULL;
+
+    return code;
 }
 
+static PerlIO *
+PerlIOApache_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param, int flags)
+{
+    //return NULL;
+    //int *x = (int *)NULL;
+    //int y = *x;
+    //y=y;
+    
+    PerlIOApache *st = PerlIOSelf(o, PerlIOApache);
+    MP_TRACE_o(MP_FUNC, "duped: 0x%lx", st->r);
+    f = PerlIOBase_dup(aTHX_ f, o, param, flags);
+    //st->r = NULL;
+    
+    return f;
+}
 
 static PerlIO_funcs PerlIO_Apache = {
     sizeof(PerlIO_funcs),
@@ -216,7 +239,7 @@
     PerlIOBase_binmode,
     PerlIOApache_getarg,
     PerlIOApache_fileno,
-    PerlIOBase_dup,
+    PerlIOApache_dup,
     PerlIOApache_read,
     PerlIOBase_unread,
     PerlIOApache_write,

Modified: perl/modperl/branches/clone-skip-unstable/t/apr-ext/pool.t
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/apr-ext/pool.t?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/apr-ext/pool.t (original)
+++ perl/modperl/branches/clone-skip-unstable/t/apr-ext/pool.t Thu Apr 28 15:24:43 2005
@@ -2,10 +2,14 @@
 
 use strict;
 use warnings FATAL => 'all';
-use Apache::Test;
+
+#use threads;
 
 use TestAPRlib::pool;
 
+use Apache::Test;
+
 plan tests => TestAPRlib::pool::num_of_tests();
 
 TestAPRlib::pool::test();
+

Modified: perl/modperl/branches/clone-skip-unstable/t/apr-ext/table.t
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/apr-ext/table.t?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/apr-ext/table.t (original)
+++ perl/modperl/branches/clone-skip-unstable/t/apr-ext/table.t Thu Apr 28 15:24:43 2005
@@ -2,6 +2,7 @@
 
 use strict;
 use warnings FATAL => 'all';
+
 use Apache::Test;
 
 use TestAPRlib::table;

Modified: perl/modperl/branches/clone-skip-unstable/t/conf/modperl_extra.pl
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/conf/modperl_extra.pl?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/conf/modperl_extra.pl (original)
+++ perl/modperl/branches/clone-skip-unstable/t/conf/modperl_extra.pl Thu Apr 28 15:24:43 2005
@@ -18,6 +18,22 @@
 use strict;
 use warnings FATAL => 'all';
 
+BEGIN {
+    # must be run first, so that Test::Builder will be threads-aware
+    use Config;
+    require threads if $] >= 5.008 && $Config{useithreads};
+}
+
+# XXX: May be this should go into Apache::Test, so other mod_perl test
+# suites won't suffer from the same problems.
+use Test::Builder;
+my $Test = Test::Builder->new;
+# under mod_perl we don't want Test::Builder to run the END block
+$Test->no_ending(1);
+# setup T-B's STD handlers early so that it won't mess up with PerlIO
+# layers (which is a death under threads)
+$Test->reset;
+
 die '$ENV{MOD_PERL} not set!' unless $ENV{MOD_PERL};
 die '$ENV{MOD_PERL_API_VERSION} not set!' 
     unless $ENV{MOD_PERL_API_VERSION} == 2;

Modified: perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/pool.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/pool.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/pool.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/pool.pm Thu Apr 28 15:24:43 2005
@@ -3,7 +3,9 @@
 use strict;
 use warnings FATAL => 'all';
 
-use Apache::Test;
+use TestCommon::Utils;
+
+use Apache::Test; # for a shared test counter under ithreads
 use Apache::TestUtil;
 use Apache::TestTrace;
 
@@ -11,11 +13,28 @@
 use APR::Table ();
 
 sub num_of_tests {
-    return 75;
+    my $runs = 1;
+    $runs += 3 if TestCommon::Utils::THREADS_OK;
+
+    return $runs * 75;
 }
 
 sub test {
+    test_set();
+
+    return unless TestCommon::Utils::THREADS_OK;
+
+    require threads;
+    our $p = APR::Pool->new;
+    my $threads = 2;
 
+    threads->new(\&test_set)->join for 1..$threads;
+    test_set(); # parent again
+
+    #$_->join() for threads->list();
+}
+
+sub test_set {
     my $pool = APR::Pool->new();
     my $table = APR::Table::make($pool, 2);
 
@@ -407,6 +426,8 @@
         #ok $num_bytes;
 
     }
+
+    return undef; # a must for thread callback
 }
 
 # returns how many ancestor generations the pool has (parent,

Modified: perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/table.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/table.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/table.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/lib/TestAPRlib/table.pm Thu Apr 28 15:24:43 2005
@@ -5,29 +5,51 @@
 use strict;
 use warnings FATAL => 'all';
 
+use Test::More ();
 use Apache::Test;
 use Apache::TestUtil;
 
 use APR::Table ();
 use APR::Pool ();
 
+use TestCommon::Utils;
+
 use APR::Const -compile => ':table';
 
 use constant TABLE_SIZE => 20;
 our $filter_count;
 
 sub num_of_tests {
-    my $tests = 56;
+    my $runs = 1;
+    $runs += 3 if TestCommon::Utils::THREADS_OK;
 
+    my $tests = 56;
     # tied hash values() for a table w/ multiple values for the same
     # key
     $tests += 2 if $] >= 5.008;
 
-    return $tests;
+    return $tests * $runs;
 }
 
 sub test {
+    test_set();
+
+    return unless TestCommon::Utils::THREADS_OK;
+
+    require threads;
+    our $p = APR::Pool->new;
+    my $threads = 2;
+
+    threads->new(\&test_set)->join for 1..$threads;
+    test_set(); # parent again
+
+    # XXX: at the moment serializing each run, since ok's gets
+    # interleaved with other otput when multple threads run at the
+    # same time
+    #$_->join() for threads->list();
+}
 
+sub test_set {
     $filter_count = 0;
     my $pool = APR::Pool->new();
     my $table = APR::Table::make($pool, TABLE_SIZE);

Modified: perl/modperl/branches/clone-skip-unstable/t/lib/TestCommon/Utils.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/lib/TestCommon/Utils.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/lib/TestCommon/Utils.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/lib/TestCommon/Utils.pm Thu Apr 28 15:24:43 2005
@@ -11,6 +11,9 @@
 use Apache2::Const -compile => qw(MODE_READBYTES);
 use APR::Const    -compile => qw(SUCCESS BLOCK_READ);
 
+use Config;
+use constant THREADS_OK => $] >= 5.008 && $Config{useithreads};
+
 use constant IOBUFSIZE => 8192;
 
 # perl 5.6.x only triggers taint protection on strings which are at

Modified: perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t (original)
+++ perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t Thu Apr 28 15:24:43 2005
@@ -0,0 +1,16 @@
+# WARNING: this file is generated, do not edit
+# 01: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:923
+# 02: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:941
+# 03: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfigPerl.pm:135
+# 04: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfigPerl.pm:548
+# 05: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:609
+# 06: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:624
+# 07: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:1558
+# 08: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRun.pm:506
+# 09: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRunPerl.pm:84
+# 10: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRun.pm:725
+# 11: /home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRun.pm:725
+# 12: /home/stas/apache.org/mp2-no-clone/t/TEST:21
+
+use Apache::TestRequest 'GET_BODY_ASSERT';
+print GET_BODY_ASSERT "/TestPerl__ithreads_cloning";

Modified: perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm Thu Apr 28 15:24:43 2005
@@ -18,7 +18,10 @@
 sub handler {
     my $r = shift;
 
-    plan $r, tests => 4 + TestAPRlib::pool::num_of_tests();
+    # this buffers the ok's and will flush them out on sub's end
+    my $x = Apache::TestToStringRequest->new($r);
+
+    plan tests => 4 + TestAPRlib::pool::num_of_tests();
 
     ### native pools ###
 

Modified: perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/table.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/table.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/table.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/table.pm Thu Apr 28 15:24:43 2005
@@ -13,8 +13,11 @@
 sub handler {
     my $r = shift;
 
+    # this buffers the ok's and will flush them out on sub's end
+    my $x = Apache::TestToStringRequest->new($r);
+
     my $tests = TestAPRlib::table::num_of_tests();
-    plan $r, tests => $tests;
+    plan tests => $tests;
 
     TestAPRlib::table::test();
 

Modified: perl/modperl/branches/clone-skip-unstable/t/response/TestDirective/cmdparms.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/response/TestDirective/cmdparms.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/response/TestDirective/cmdparms.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/response/TestDirective/cmdparms.pm Thu Apr 28 15:24:43 2005
@@ -52,13 +52,26 @@
     $srv_cfg->{$args}{limited} = $parms->method_is_limited('GET');    
 }
 
-### response handler ###
+
 sub handler : method {
     my($self, $r) = @_;
+
+    plan $r, tests => 1;
+
+    ok 1;
+
+    return Apache2::Const::OK;
+}
+
+### response handler ###
+sub handler1 : method {
+    my($self, $r) = @_;
     my $override;
     my $srv_cfg = $self->get_config($r->server);
 
     plan $r, tests => 9 + ( 7 * keys(%$srv_cfg) );
+
+    warn "wHOAH!\n";
 
     foreach my $cfg (values %$srv_cfg) {
         ok t_cmp(ref($cfg->{cmd}), 'Apache2::Command', 'cmd');

Modified: perl/modperl/branches/clone-skip-unstable/t/response/TestPerl/ithreads_cloning.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/response/TestPerl/ithreads_cloning.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/t/response/TestPerl/ithreads_cloning.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/t/response/TestPerl/ithreads_cloning.pm Thu Apr 28 15:24:43 2005
@@ -0,0 +1,135 @@
+package TestPerl::ithreads_cloning;
+
+# a few basic tests on how mp2 objects deal with cloning (used
+# APR::Table and APR::Pool for the tests)
+#
+
+use strict;
+use warnings FATAL => 'all';
+
+use APR::Table ();
+use APR::Pool ();
+
+use Apache::Test;
+use Apache::TestUtil;
+
+use TestCommon::Utils;
+
+use Devel::Peek;
+
+use Apache2::Const -compile => 'OK';
+
+my $pool_ext = APR::Pool->new;
+my $table_ext1 = APR::Table::make($pool_ext, 10);
+my $table_ext2 = APR::Table::make($pool_ext, 10);
+
+my $threads = 2;
+
+sub handler {
+    my $r = shift;
+
+    # this buffers the ok's and will flush them out on sub's end
+    my $x = Apache::TestToStringRequest->new($r);
+
+    my $tests = 10 * (2 + $threads);
+    plan tests => $tests, need
+        need_threads,
+        {"perl >= 5.8.1 is required (this is $])" => ($] >= 5.008001)};
+
+    require threads;
+    threads->import();
+
+    read_test();
+    threads->new(\&read_test)->join() for 1..$threads;
+    read_test();
+
+    Apache2::Const::OK;
+}
+
+# 10 subtests
+sub read_test {
+
+    my $tid = threads->self()->tid();
+    t_debug "tid: $tid";
+
+    {
+        # use of invalidated cloned object
+        my $error_msg = q[Can't call method "set" on unblessed reference];
+        eval { $table_ext1->set(1 => 2); };
+        if ($tid > 0) { # child thread
+            # set must fail, since $table_ext1 must have been invalidated
+            ok t_cmp $@, qr/\Q$error_msg/,
+                '$table_ext1 must have been invalidated';
+        }
+        else {
+            # should work just fine for the parent "thread", which
+            # created this variable
+            ok !$@;
+        }
+    }
+
+    {
+        # use of invalidated cloned object as an argument
+        my $error_msg = 'argument is not a blessed reference ' .
+            '(expecting an APR::Pool derived object)';
+        eval { my $table = APR::Table::make($pool_ext, 10) };
+        if ($tid > 0) { # child thread
+            # make() must fail, since $pool_ext must have been invalidated
+            ok t_cmp $@, qr/\Q$error_msg/,
+                '$pool_ext must have been invalidated';
+        }
+        else {
+            # should work just fine for the parent "thread", which
+            # created this variable
+            ok !$@;
+        }
+    }
+
+    {
+        # this is an important test, since the thread assigns a new
+        # value to the cloned $table_ext1 (since it existed before the
+        # thread was started)
+
+        my $save = $table_ext1;
+
+        $table_ext1 = APR::Table::make(APR::Pool->new, 10);
+
+        validate($table_ext1);
+
+        $table_ext1 = $save;
+    }
+
+    {
+        # here $table_ext2 is a private variable, so the cloned
+        # variable $table_ext2 is not touched
+        my $table_ext2 = APR::Table::make(APR::Pool->new, 10);
+
+        validate($table_ext2);
+    }
+
+    return undef;
+}
+
+# 4 subtests
+sub validate {
+    my $t = shift;
+    my $tid = threads->self()->tid();
+
+    $t->set($_ => $_) for 1..20;
+    for my $count (1..2) {
+        my $expected = 20;
+        my $received = $t->get(20);
+        is $received, $expected, "tid: $tid: pass 1:";
+        $t->set(20 => 40);
+        $received = $t->get(20);
+        $expected = 40;
+        is $received, $expected, "tid: $tid: pass 2:";
+        # reset
+        $t->set(20 => 20);
+    }
+}
+
+1;
+
+__END__
+

Modified: perl/modperl/branches/clone-skip-unstable/xs/APR/APR/APR.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/APR/APR/APR.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/APR/APR/APR.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/xs/APR/APR/APR.pm Thu Apr 28 15:24:43 2005
@@ -30,5 +30,7 @@
     *APR::XSLoader::BOOTSTRAP = sub () { 1 };
 }
 
+sub CLONE_SKIP { 1 } # mp2 API is not perl-ithread-clonable
+
 1;
 __END__

Modified: perl/modperl/branches/clone-skip-unstable/xs/APR/Const/Const.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/APR/Const/Const.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/APR/Const/Const.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/xs/APR/Const/Const.pm Thu Apr 28 15:24:43 2005
@@ -23,4 +23,6 @@
 
 XSLoader::load(__PACKAGE__, $VERSION);
 
+sub CLONE_SKIP { 1 } # mp2 API is not perl-ithread-clonable
+
 1;

Modified: perl/modperl/branches/clone-skip-unstable/xs/APR/PerlIO/PerlIO.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/APR/PerlIO/PerlIO.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/APR/PerlIO/PerlIO.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/xs/APR/PerlIO/PerlIO.pm Thu Apr 28 15:24:43 2005
@@ -26,5 +26,6 @@
 use APR::XSLoader ();
 APR::XSLoader::load __PACKAGE__;
 
+sub CLONE_SKIP { 1 } # mp2 API is not perl-ithread-clonable
 
 1;

Modified: perl/modperl/branches/clone-skip-unstable/xs/Apache2/Const/Const.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/Apache2/Const/Const.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/Apache2/Const/Const.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/xs/Apache2/Const/Const.pm Thu Apr 28 15:24:43 2005
@@ -22,4 +22,6 @@
 
 XSLoader::load(__PACKAGE__, $VERSION);
 
+sub CLONE_SKIP { 1 } # mp2 API is not perl-ithread-clonable
+
 1;

Modified: perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Const/Const.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Const/Const.pm?rev=165215&r1=165214&r2=165215&view=diff
==============================================================================
--- perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Const/Const.pm (original)
+++ perl/modperl/branches/clone-skip-unstable/xs/ModPerl/Const/Const.pm Thu Apr 28 15:24:43 2005
@@ -38,6 +38,8 @@
     __PACKAGE__->bootstrap($VERSION);
 }
 
+sub CLONE_SKIP { 1 } # mp2 API is not perl-ithread-clonable
+
 sub import {
     my $class = shift;
     my $arg;



Re: svn commit: r165215 - in /perl/modperl/branches/clone-skip-unstable: ModPerl-Registry/t/ lib/ModPerl/ src/modules/perl/ t/apr-ext/ t/conf/ t/lib/TestAPRlib/ t/lib/TestCommon/ t/perl/ t/response/TestAPR/ t/response/TestDirective/ t/response/TestPerl/ xs/APR/APR/ xs/APR/Const/ xs/APR/PerlIO/ xs/Apache2/Const/ xs/ModPerl/Const/

Posted by Stas Bekman <st...@stason.org>.
Philip M. Gollucci wrote:
> stas@apache.org wrote:
> 
>> Author: stas
>> Date: Thu Apr 28 15:24:43 2005
>> New Revision: 165215
>>
>> URL: http://svn.apache.org/viewcvs?rev=165215&view=rev
>> Log:
>> merge the right branch: CLONE_SKIP support
> 
>  > Modified:
> In my vain attempts to keep up with all this, I was reading the commit 
> and I'm wondering if you meant to commit this file(below) as it is 
> generated
> as its contents say ?
> 
> Sorry for the noise if I'm way off.

Thanks Philip, I had removed it. I was just rushing to commit my rough 
changes before taking a plane, not bothering much about checking as this 
is a scratch branch to play with. there are many other things I need to 
clean up before it'll go to the trunk. It's still incomplete, as I get 
random segfaults :(


-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: svn commit: r165215 - in /perl/modperl/branches/clone-skip-unstable: ModPerl-Registry/t/ lib/ModPerl/ src/modules/perl/ t/apr-ext/ t/conf/ t/lib/TestAPRlib/ t/lib/TestCommon/ t/perl/ t/response/TestAPR/ t/response/TestDirective/ t/response/TestPerl/ xs/APR/APR/ xs/APR/Const/ xs/APR/PerlIO/ xs/Apache2/Const/ xs/ModPerl/Const/

Posted by "Philip M. Gollucci" <pg...@p6m7g8.com>.
stas@apache.org wrote:
> Author: stas
> Date: Thu Apr 28 15:24:43 2005
> New Revision: 165215
> 
> URL: http://svn.apache.org/viewcvs?rev=165215&view=rev
> Log:
> merge the right branch: CLONE_SKIP support
 > Modified:
In my vain attempts to keep up with all this, I was reading the commit 
and I'm wondering if you meant to commit this file(below) as it is generated
as its contents say ?

Sorry for the noise if I'm way off.


perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t
 > URL: 
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t?rev=165215&r1=165214&r2=165215&view=diff
 > 
==============================================================================
 > --- 
perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t 
(original)
 > +++ 
perl/modperl/branches/clone-skip-unstable/t/perl/ithreads_cloning.t Thu 
Apr 28 15:24:43 2005
 > @@ -0,0 +1,16 @@
 > +# WARNING: this file is generated, do not edit
 > +# 01: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:923
 > +# 02: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:941
 > +# 03: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfigPerl.pm:135
 > +# 04: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfigPerl.pm:548
 > +# 05: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:609
 > +# 06: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:624
 > +# 07: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestConfig.pm:1558
 > +# 08: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRun.pm:506
 > +# 09: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRunPerl.pm:84
 > +# 10: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRun.pm:725
 > +# 11: 
/home/stas/apache.org/mp2-no-clone/Apache-Test/lib/Apache/TestRun.pm:725
 > +# 12: /home/stas/apache.org/mp2-no-clone/t/TEST:21
 > +
 > +use Apache::TestRequest 'GET_BODY_ASSERT';
 > +print GET_BODY_ASSERT "/TestPerl__ithreads_cloning";
 >
 > Modified: 
perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm
 > URL: 
http://svn.apache.org/viewcvs/perl/modperl/branches/clone-skip-unstable/t/response/TestAPR/pool.pm?rev=165215&r1=165214&r2=165215&view=diff
 >
-- 
END
------------------------------------------------------
Philip M. Gollucci (pgollucci@p6m7g8.com) 301.254.5198
Consultant / http://p6m7g8.net/Resume/resume.shtml
Senior Developer / Liquidity Services, Inc.
	http://www.liquidityservicesinc.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org