Change 33522 by [EMAIL PROTECTED] on 2008/03/14 00:11:24

        Integrate:
        [ 33517]
        Integrate:
        [ 33359]
        Subject: [PATCH] threads 1.69
        From: "Jerry D. Hedden" <[EMAIL PROTECTED]>
        Date: Fri, 22 Feb 2008 16:26:21 -0500
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33518]
        Integrate:
        [ 33266]
        Upgrade to Time-HiRes-1.9712
        
        [ 33520]
        Integrate:
        [ 33360]
        Subject: [PATCH] threads::shared 1.17
        From: "Jerry D. Hedden" <[EMAIL PROTECTED]>
        Date: Fri, 22 Feb 2008 16:31:02 -0500
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33521]
        Integrate:
        [ 33154]
        Subject: [PATCH] threads::shared TODO test for outstanding bug
        From: "Jerry D. Hedden" <[EMAIL PROTECTED]>
        Date: Wed, 30 Jan 2008 09:15:25 -0500
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33387]
        Subject: [PATCH] threads::shared 1.18
        From: "Jerry D. Hedden" <[EMAIL PROTECTED]>
        Date: Tue, 26 Feb 2008 11:29:54 -0500
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.8/perl/ext/Time/HiRes/HiRes.pm#32 integrate
... //depot/maint-5.8/perl/ext/Time/HiRes/Makefile.PL#33 integrate
... //depot/maint-5.8/perl/ext/Time/HiRes/t/HiRes.t#16 integrate
... //depot/maint-5.8/perl/ext/threads/Makefile.PL#5 integrate
... //depot/maint-5.8/perl/ext/threads/shared/Makefile.PL#3 integrate
... //depot/maint-5.8/perl/ext/threads/shared/shared.pm#17 integrate
... //depot/maint-5.8/perl/ext/threads/shared/shared.xs#31 integrate
... //depot/maint-5.8/perl/ext/threads/shared/t/0nothread.t#4 integrate
... //depot/maint-5.8/perl/ext/threads/shared/t/disabled.t#5 integrate
... //depot/maint-5.8/perl/ext/threads/shared/t/object.t#2 integrate
... //depot/maint-5.8/perl/ext/threads/shared/t/stress.t#4 integrate
... //depot/maint-5.8/perl/ext/threads/t/exit.t#4 integrate
... //depot/maint-5.8/perl/ext/threads/t/join.t#21 integrate
... //depot/maint-5.8/perl/ext/threads/t/problems.t#13 integrate
... //depot/maint-5.8/perl/ext/threads/t/thread.t#9 integrate
... //depot/maint-5.8/perl/ext/threads/threads.pm#17 integrate
... //depot/maint-5.8/perl/ext/threads/threads.xs#31 integrate

Differences ...

==== //depot/maint-5.8/perl/ext/Time/HiRes/HiRes.pm#32 (text) ====
Index: perl/ext/Time/HiRes/HiRes.pm
--- perl/ext/Time/HiRes/HiRes.pm#31~32572~      2007-12-04 06:45:57.000000000 
-0800
+++ perl/ext/Time/HiRes/HiRes.pm        2008-03-13 17:11:24.000000000 -0700
@@ -23,7 +23,7 @@
                 stat
                );
        
-$VERSION = '1.9711';
+$VERSION = '1.9712';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 

==== //depot/maint-5.8/perl/ext/Time/HiRes/Makefile.PL#33 (text) ====
Index: perl/ext/Time/HiRes/Makefile.PL
--- perl/ext/Time/HiRes/Makefile.PL#32~33497~   2008-03-12 11:44:49.000000000 
-0700
+++ perl/ext/Time/HiRes/Makefile.PL     2008-03-13 17:11:24.000000000 -0700
@@ -851,19 +851,20 @@
        print  <<EOM;
 Now you may issue '$make'.  Do not forget also '$make test'.
 EOM
-       if ((exists $ENV{LC_ALL}   && $ENV{LC_ALL}   =~ /utf-?8/i) ||
-           (exists $ENV{LC_CTYPE} && $ENV{LC_CTYPE} =~ /utf-?8/i) ||
-           (exists $ENV{LANG}     && $ENV{LANG}     =~ /utf-?8/i)) {
+       if ($] == 5.008 &&
+          ((exists $ENV{LC_ALL}   && $ENV{LC_ALL}   =~ /utf-?8/i) ||
+           (exists $ENV{LC_CTYPE} && $ENV{LC_CTYPE} =~ /utf-?8/i) ||
+           (exists $ENV{LANG}     && $ENV{LANG}     =~ /utf-?8/i))) {
             print <<EOM;
 
 NOTE: if you get an error like this (the Makefile line number may vary):
 Makefile:91: *** missing separator
 then set the environment variable LC_ALL to "C" and retry
 from scratch (re-run perl "Makefile.PL").
-(And consider upgrading your Perl.)
+(And consider upgrading your Perl to, say, at least Perl 5.8.8.)
 (You got this message because you seem to have
  an UTF-8 locale active in your shell environment, this used
- to cause broken Makefiles to be created from Makefile.PLs.)
+ to cause broken Makefiles to be created from Makefile.PLs)
 EOM
         }
     }

==== //depot/maint-5.8/perl/ext/Time/HiRes/t/HiRes.t#16 (text) ====
Index: perl/ext/Time/HiRes/t/HiRes.t
--- perl/ext/Time/HiRes/t/HiRes.t#15~32572~     2007-12-04 06:45:57.000000000 
-0800
+++ perl/ext/Time/HiRes/t/HiRes.t       2008-03-13 17:11:24.000000000 -0700
@@ -271,19 +271,6 @@
        # Perl's deferred signals may be too wimpy to break through
        # a restartable select(), so use POSIX::sigaction if available.
 
-       sub tick {
-           $i--;
-           my $ival = Time::HiRes::tv_interval ($r);
-           print "# Tick! $i $ival\n";
-           my $exp = 0.3 * (5 - $i);
-           # This test is more sensitive, so impose a softer limit.
-           if (abs($ival/$exp - 1) > 4*$limit) {
-               my $ratio = abs($ival/$exp);
-               $not = "tick: $exp sleep took $ival ratio $ratio";
-               $i = 0;
-           }
-       }
-
        POSIX::sigaction(&POSIX::SIGALRM,
                         POSIX::SigAction->new("tick"),
                         $oldaction)
@@ -315,7 +302,7 @@
            }
            my $exp = 0.3 * (5 - $i);
            # This test is more sensitive, so impose a softer limit.
-           if (abs($ival/$exp - 1) > 3*$limit) {
+           if (abs($ival/$exp - 1) > 4*$limit) {
                my $ratio = abs($ival/$exp);
                $not = "while: $exp sleep took $ival ratio $ratio";
                last;
@@ -324,6 +311,19 @@
        }
     }
 
+    sub tick {
+       $i--;
+       my $ival = Time::HiRes::tv_interval ($r);
+       print "# Tick! $i $ival\n";
+       my $exp = 0.3 * (5 - $i);
+       # This test is more sensitive, so impose a softer limit.
+       if (abs($ival/$exp - 1) > 4*$limit) {
+           my $ratio = abs($ival/$exp);
+           $not = "tick: $exp sleep took $ival ratio $ratio";
+           $i = 0;
+       }
+    }
+
     if ($use_sigaction) {
        POSIX::sigaction(&POSIX::SIGALRM, $oldaction);
     } else {

==== //depot/maint-5.8/perl/ext/threads/Makefile.PL#5 (xtext) ====
Index: perl/ext/threads/Makefile.PL
--- perl/ext/threads/Makefile.PL#4~30318~       2007-02-15 06:56:36.000000000 
-0800
+++ perl/ext/threads/Makefile.PL        2008-03-13 17:11:24.000000000 -0700
@@ -67,6 +67,7 @@
                                     'Carp'              => 0,
                                     'XSLoader'          => 0,
 
+                                    'Test::More'        => 0,
                                     'ExtUtils::testlib' => 0,
                                     'Hash::Util'        => 0,
                                     'IO::File'          => 0,
@@ -93,4 +94,22 @@
     @conditional_params
 );
 
+# Additional 'make' targets
+sub MY::postamble
+{
+    return <<'_EXTRAS_';
+fixfiles:
+       @dos2unix `cat MANIFEST`
+       @$(CHMOD) 644 `cat MANIFEST`
+       @$(CHMOD) 755 examples/*.pl
+
+ppport:
+       @( cd /tmp; perl -e 'use Devel::PPPort; 
Devel::PPPort::WriteFile("ppport.h");' )
+       @if ! cmp -s ppport.h /tmp/ppport.h; then \
+           ( tkdiff ppport.h /tmp/ppport.h & ); \
+           perl /tmp/ppport.h; \
+       fi
+_EXTRAS_
+}
+
 # EOF

==== //depot/maint-5.8/perl/ext/threads/shared/Makefile.PL#3 (xtext) ====
Index: perl/ext/threads/shared/Makefile.PL
--- perl/ext/threads/shared/Makefile.PL#2~30316~        2007-02-15 
05:28:31.000000000 -0800
+++ perl/ext/threads/shared/Makefile.PL 2008-03-13 17:11:24.000000000 -0700
@@ -55,14 +55,13 @@
 
     # Verify that a 'C' compiler is available
     if (! have_cc()) {
-        die("No 'C' compiler found to build 'threads'\n");
+        die("OS unsupported:  ERROR: No 'C' compiler found to build 
'threads::shared'\n");
     }
 
     push(@conditional_params, 'DEFINE' => '-DHAS_PPPORT_H',
                               'PREREQ_PM' => {
                                     'strict'            => 0,
                                     'warnings'          => 0,
-                                    'threads'           => 0,
                                     'Config'            => 0,
                                     'Carp'              => 0,
                                     'XSLoader'          => 0,
@@ -93,4 +92,22 @@
     @conditional_params
 );
 
+# Additional 'make' targets
+sub MY::postamble
+{
+    return <<'_EXTRAS_';
+fixfiles:
+       @dos2unix `cat MANIFEST`
+       @$(CHMOD) 644 `cat MANIFEST`
+       @$(CHMOD) 755 examples/*.pl
+
+ppport:
+       @( cd /tmp; perl -e 'use Devel::PPPort; 
Devel::PPPort::WriteFile("ppport.h");' )
+       @if ! cmp -s ppport.h /tmp/ppport.h; then \
+           ( tkdiff ppport.h /tmp/ppport.h & ); \
+           perl /tmp/ppport.h; \
+       fi
+_EXTRAS_
+}
+
 # EOF

==== //depot/maint-5.8/perl/ext/threads/shared/shared.pm#17 (text) ====
Index: perl/ext/threads/shared/shared.pm
--- perl/ext/threads/shared/shared.pm#16~33172~ 2008-02-01 11:03:16.000000000 
-0800
+++ perl/ext/threads/shared/shared.pm   2008-03-13 17:11:24.000000000 -0700
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '1.15';
+our $VERSION = '1.18';
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -73,7 +73,7 @@
 
 =head1 VERSION
 
-This document describes threads::shared version 1.15
+This document describes threads::shared version 1.18
 
 =head1 SYNOPSIS
 
@@ -315,8 +315,11 @@
 
 =head1 NOTES
 
-threads::shared is designed to disable itself silently if threads are not
-available. If you want access to threads, you must C<use threads> before you
+L<threads::shared> is designed to disable itself silently if threads are not
+available.  This allows you to write modules and packages that can be used
+in both threaded and non-threaded applications.
+
+If you want access to threads, you must C<use threads> before you
 C<use threads::shared>.  L<threads> will emit a warning if you use it after
 L<threads::shared>.
 
@@ -368,7 +371,7 @@
 L<http://www.cpanforum.com/dist/threads-shared>
 
 Annotated POD for L<threads::shared>:
-L<http://annocpan.org/~JDHEDDEN/threads-shared-1.15/shared.pm>
+L<http://annocpan.org/~JDHEDDEN/threads-shared-1.18/shared.pm>
 
 Source repository:
 L<http://code.google.com/p/threads-shared/>

==== //depot/maint-5.8/perl/ext/threads/shared/shared.xs#31 (text) ====
Index: perl/ext/threads/shared/shared.xs
--- perl/ext/threads/shared/shared.xs#30~33172~ 2008-02-01 11:03:16.000000000 
-0800
+++ perl/ext/threads/shared/shared.xs   2008-03-13 17:11:24.000000000 -0700
@@ -1033,9 +1033,15 @@
  * This is called when perl is about to access an element of
  * the array -
  */
+#if PERL_VERSION >= 11
+int
+sharedsv_array_mg_copy(pTHX_ SV *sv, MAGIC* mg,
+                       SV *nsv, const char *name, I32 namlen)
+#else
 int
 sharedsv_array_mg_copy(pTHX_ SV *sv, MAGIC* mg,
                        SV *nsv, const char *name, int namlen)
+#endif
 {
     MAGIC *nmg = sv_magicext(nsv,mg->mg_obj,
                             toLOWER(mg->mg_type),&sharedsv_elem_vtbl,

==== //depot/maint-5.8/perl/ext/threads/shared/t/0nothread.t#4 (text) ====
Index: perl/ext/threads/shared/t/0nothread.t
--- perl/ext/threads/shared/t/0nothread.t#3~32289~      2007-11-12 
11:42:34.000000000 -0800
+++ perl/ext/threads/shared/t/0nothread.t       2008-03-13 17:11:24.000000000 
-0700
@@ -6,11 +6,6 @@
         chdir 't';
         unshift @INC, '../lib';
     }
-    use Config;
-    if (! $Config{'useithreads'}) {
-        print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
-        exit(0);
-    }
 }
 
 use Test::More (tests => 53);

==== //depot/maint-5.8/perl/ext/threads/shared/t/disabled.t#5 (text) ====
Index: perl/ext/threads/shared/t/disabled.t
--- perl/ext/threads/shared/t/disabled.t#4~30316~       2007-02-15 
05:28:31.000000000 -0800
+++ perl/ext/threads/shared/t/disabled.t        2008-03-13 17:11:24.000000000 
-0700
@@ -6,11 +6,6 @@
         chdir 't';
         unshift @INC, '../lib';
     }
-    use Config;
-    if (! $Config{'useithreads'}) {
-        print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
-        exit(0);
-    }
 }
 
 use Test;

==== //depot/maint-5.8/perl/ext/threads/shared/t/object.t#2 (text) ====
Index: perl/ext/threads/shared/t/object.t
--- perl/ext/threads/shared/t/object.t#1~33172~ 2008-02-01 11:03:16.000000000 
-0800
+++ perl/ext/threads/shared/t/object.t  2008-03-13 17:11:24.000000000 -0700
@@ -21,7 +21,7 @@
 
 BEGIN {
     $| = 1;
-    print("1..23\n");   ### Number of tests that will be run ###
+    print("1..28\n");   ### Number of tests that will be run ###
 };
 
 use threads;
@@ -148,4 +148,34 @@
 $cookie = $jar->fetch();
 ok($cookie->{'type'}      eq $C3, 'Fetched cookie from jar');
 
+{ package Foo;
+
+    my $ID = 1;
+    threads::shared::share($ID);
+
+    sub new
+    {
+        # Anonymous scalar with an internal ID
+        my $obj = \do{ my $scalar = $ID++; };
+        threads::shared::share($obj);   # Make it shared
+        return (bless($obj, 'Foo'));    # Make it an object
+    }
+}
+
+my $obj :shared;
+$obj = Foo->new();
+ok($$obj == 1, "Main: Object ID $$obj");
+
+threads->create( sub {
+        ok($$obj == 1, "Thread: Object ID $$obj");
+
+        $$obj = 10;
+        ok($$obj == 10, "Thread: Changed object ID $$obj");
+
+        $obj = Foo->new();
+        ok($$obj == 2, "Thread: New object ID $$obj");
+    } )->join();
+
+ok($$obj == 2, "Main: New object ID $$obj  # TODO - should be 2");
+
 # EOF

==== //depot/maint-5.8/perl/ext/threads/shared/t/stress.t#4 (text) ====
Index: perl/ext/threads/shared/t/stress.t
--- perl/ext/threads/shared/t/stress.t#3~32289~ 2007-11-12 11:42:34.000000000 
-0800
+++ perl/ext/threads/shared/t/stress.t  2008-03-13 17:11:24.000000000 -0700
@@ -88,27 +88,30 @@
             $okay++;
         } else {
             $unknown++;
-            print("# Unknown error: $rc\n");
+            print(STDERR "# Unknown error: $rc\n");
         }
     }
 
     if ($failures || $unknown || (($okay + $timeouts) != $cnt)) {
-        print('not ok 1');
+        print("not ok 1\n");
         my $too_few = $cnt - ($okay + $failures + $timeouts + $unknown);
-        print(" - $too_few too few threads reported") if $too_few;
-        print(" - $failures threads failed")          if $failures;
-        print(" - $unknown unknown errors")           if $unknown;
-        print(" - $timeouts threads timed out")       if $timeouts;
-        print("\n");
+        print(STDERR "# Test failed:\n");
+        print(STDERR "#\t$too_few too few threads reported\n") if $too_few;
+        print(STDERR "#\t$failures threads failed\n")          if $failures;
+        print(STDERR "#\t$unknown unknown errors\n")           if $unknown;
+        print(STDERR "#\t$timeouts threads timed out\n")       if $timeouts;
 
     } elsif ($timeouts) {
         # Frequently fails under MSWin32 due to deadlocking bug in Windows
         # hence test is TODO under MSWin32
         #   http://rt.perl.org/rt3/Public/Bug/Display.html?id=41574
         #   http://support.microsoft.com/kb/175332
-        print('not ok 1');
-        print(' # TODO - not reliable under MSWin32') if ($^O eq 'MSWin32');
-        print(" - $timeouts threads timed out\n");
+        if ($^O eq 'MSWin32') {
+            print("not ok 1 # TODO - not reliable under MSWin32\n")
+        } else {
+            print("not ok 1\n");
+            print(STDERR "# Test failed: $timeouts threads timed out\n");
+        }
 
     } else {
         print('ok 1');

==== //depot/maint-5.8/perl/ext/threads/t/exit.t#4 (text) ====
Index: perl/ext/threads/t/exit.t
--- perl/ext/threads/t/exit.t#3~32289~  2007-11-12 11:42:34.000000000 -0800
+++ perl/ext/threads/t/exit.t   2008-03-13 17:11:24.000000000 -0700
@@ -6,14 +6,15 @@
         chdir 't';
         unshift @INC, '../lib';
     }
+
+    require($ENV{PERL_CORE} ? "./test.pl" : "./t/test.pl");
+
     use Config;
     if (! $Config{'useithreads'}) {
-        print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
-        exit(0);
+        skip_all(q/Perl not compiled with 'useithreads'/);
     }
-
-    require($ENV{PERL_CORE} ? "./test.pl" : "./t/test.pl");
 }
+
 our $TODO;
 
 use ExtUtils::testlib;
@@ -26,8 +27,7 @@
         import threads::shared;
     };
     if ($@ || ! $threads::shared::threads_shared) {
-        print("1..0 # Skip: threads::shared not available\n");
-        exit(0);
+        skip_all('threads::shared not available');
     }
 
     $| = 1;
@@ -57,7 +57,7 @@
 ok(! defined($rc), 'Exited: threads->exit()');
 
 
-run_perl(prog => 'use threads 1.67;' .
+run_perl(prog => 'use threads 1.69;' .
                  'threads->exit(86);' .
                  'exit(99);',
          nolib => ($ENV{PERL_CORE}) ? 0 : 1,
@@ -107,7 +107,7 @@
 ok(! defined($rc), 'Exited: $thr->set_thread_exit_only');
 
 
-run_perl(prog => 'use threads 1.67 qw(exit thread_only);' .
+run_perl(prog => 'use threads 1.69 qw(exit thread_only);' .
                  'threads->create(sub { exit(99); })->join();' .
                  'exit(86);',
          nolib => ($ENV{PERL_CORE}) ? 0 : 1,
@@ -117,7 +117,7 @@
     is($?>>8, 86, "'use threads 'exit' => 'thread_only'");
 }
 
-my $out = run_perl(prog => 'use threads 1.67;' .
+my $out = run_perl(prog => 'use threads 1.69;' .
                            'threads->create(sub {' .
                            '    exit(99);' .
                            '});' .
@@ -133,7 +133,7 @@
 like($out, '1 finished and unjoined', "exit(status) in thread");
 
 
-$out = run_perl(prog => 'use threads 1.67 qw(exit thread_only);' .
+$out = run_perl(prog => 'use threads 1.69 qw(exit thread_only);' .
                         'threads->create(sub {' .
                         '   threads->set_thread_exit_only(0);' .
                         '   exit(99);' .
@@ -150,7 +150,7 @@
 like($out, '1 finished and unjoined', "set_thread_exit_only(0)");
 
 
-run_perl(prog => 'use threads 1.67;' .
+run_perl(prog => 'use threads 1.69;' .
                  'threads->create(sub {' .
                  '   $SIG{__WARN__} = sub { exit(99); };' .
                  '   die();' .

==== //depot/maint-5.8/perl/ext/threads/t/join.t#21 (text) ====
Index: perl/ext/threads/t/join.t
--- perl/ext/threads/t/join.t#20~32289~ 2007-11-12 11:42:34.000000000 -0800
+++ perl/ext/threads/t/join.t   2008-03-13 17:11:24.000000000 -0700
@@ -57,7 +57,7 @@
 }
 
 sub skip {
-    ok(1, '# Skipped: ' . $_[0]);
+    ok(1, '# skip: ' . $_[0]);
 }
 
 

==== //depot/maint-5.8/perl/ext/threads/t/problems.t#13 (text) ====
Index: perl/ext/threads/t/problems.t
--- perl/ext/threads/t/problems.t#12~32290~     2007-11-12 12:20:34.000000000 
-0800
+++ perl/ext/threads/t/problems.t       2008-03-13 17:11:24.000000000 -0700
@@ -95,7 +95,7 @@
         my $not = eval { Config::myconfig() } ? '' : 'not ';
         print "${not}ok $test - Are we able to call Config::myconfig after 
clone\n";
     } else {
-        print "ok $test # Skip Are we able to call Config::myconfig after 
clone\n";
+        print "ok $test # skip: Are we able to call Config::myconfig after 
clone\n";
     }
     $test++;
 }
@@ -123,7 +123,7 @@
             print $@ =~ /disallowed/
               ? '' : 'not ', "ok $test # TODO $TODO - unique_hash\n";
         } else {
-            print("ok $test # Skip $TODO - unique_hash\n");
+            print("ok $test # skip: $TODO - unique_hash\n");
         }
         $test++;
     })->join;
@@ -138,7 +138,7 @@
             print $@ =~ /^The 'unique' attribute may only be applied to 'our' 
variables/
                     ? '' : 'not ', "ok $test - $decl\n";
         } else {
-            print("ok $test # Skip $decl\n");
+            print("ok $test # skip: $decl\n");
         }
         $test++;
     }

==== //depot/maint-5.8/perl/ext/threads/t/thread.t#9 (text) ====
Index: perl/ext/threads/t/thread.t
--- perl/ext/threads/t/thread.t#8~32289~        2007-11-12 11:42:34.000000000 
-0800
+++ perl/ext/threads/t/thread.t 2008-03-13 17:11:24.000000000 -0700
@@ -6,13 +6,13 @@
         chdir 't';
         unshift @INC, '../lib';
     }
+
+    require($ENV{PERL_CORE} ? "./test.pl" : "./t/test.pl");
+
     use Config;
     if (! $Config{'useithreads'}) {
-        print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
-        exit(0);
+        skip_all(q/Perl not compiled with 'useithreads'/);
     }
-
-    require($ENV{PERL_CORE} ? "./test.pl" : "./t/test.pl");
 }
 
 use ExtUtils::testlib;
@@ -25,8 +25,7 @@
         threads::shared->import();
     };
     if ($@ || ! $threads::shared::threads_shared) {
-        print("1..0 # Skip: threads::shared not available\n");
-        exit(0);
+        skip_all('threads::shared not available');
     }
 
     $| = 1;
@@ -171,7 +170,7 @@
 
 # bugid #24165
 
-run_perl(prog => 'use threads 1.67;' .
+run_perl(prog => 'use threads 1.69;' .
                  'sub a{threads->create(shift)} $t = a sub{};' .
                  '$t->tid; $t->join; $t->tid',
          nolib => ($ENV{PERL_CORE}) ? 0 : 1,

==== //depot/maint-5.8/perl/ext/threads/threads.pm#17 (xtext) ====
Index: perl/ext/threads/threads.pm
--- perl/ext/threads/threads.pm#16~32289~       2007-11-12 11:42:34.000000000 
-0800
+++ perl/ext/threads/threads.pm 2008-03-13 17:11:24.000000000 -0700
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '1.67';
+our $VERSION = '1.69';
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -134,7 +134,7 @@
 
 =head1 VERSION
 
-This document describes threads version 1.67
+This document describes threads version 1.69
 
 =head1 SYNOPSIS
 
@@ -963,7 +963,9 @@
 Returning objects from threads does not work.  Depending on the classes
 involved, you may be able to work around this by returning a serialized
 version of the object (e.g., using L<Data::Dumper> or L<Storable>), and then
-reconstituting it in the joining thread.
+reconstituting it in the joining thread.  If you're using Perl 5.10.0 or
+later, and if the class supports L<shared objects|threads::shared/"OBJECTS">,
+you can pass them via L<shared queues| Thread::Queue>.
 
 =item Perl Bugs and the CPAN Version of L<threads>
 
@@ -978,6 +980,10 @@
 unreferenced scalars.  However, such warnings are harmless, and may safely be
 ignored.
 
+You can search for L<threads> related bug reports at
+L<http://rt.cpan.org/Public/>.  If needed submit any new bugs, problems,
+patches, etc. to: L<http://rt.cpan.org/Public/Dist/Display.html?Name=threads>
+
 =back
 
 =head1 REQUIREMENTS
@@ -990,7 +996,7 @@
 L<http://www.cpanforum.com/dist/threads>
 
 Annotated POD for L<threads>:
-L<http://annocpan.org/~JDHEDDEN/threads-1.67/threads.pm>
+L<http://annocpan.org/~JDHEDDEN/threads-1.69/threads.pm>
 
 Source repository:
 L<http://code.google.com/p/threads-shared/>

==== //depot/maint-5.8/perl/ext/threads/threads.xs#31 (xtext) ====
Index: perl/ext/threads/threads.xs
--- perl/ext/threads/threads.xs#30~32289~       2007-11-12 11:42:34.000000000 
-0800
+++ perl/ext/threads/threads.xs 2008-03-13 17:11:24.000000000 -0700
@@ -1461,7 +1461,7 @@
         thread = S_SV_to_ithread(aTHX_ ST(0));
         ST(0) = (thread->gimme & G_ARRAY) ? &PL_sv_yes :
                 (thread->gimme & G_VOID)  ? &PL_sv_undef
-                           /* G_SCALAR */ : &PL_sv_no;
+                                       /* G_SCALAR */ : &PL_sv_no;
         /* XSRETURN(1); - implied */
 
 
End of Patch.

Reply via email to