r54124 - in /branches/upstream/libobject-insideout-perl/current: ./ examples/ lib/Bundle/Object/ lib/Object/ lib/Object/InsideOut/ t/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Thu Mar 11 20:19:45 UTC 2010


Author: jawnsy-guest
Date: Thu Mar 11 20:19:36 2010
New Revision: 54124

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=54124
Log:
[svn-upgrade] Integrating new upstream version, libobject-insideout-perl (3.64)

Added:
    branches/upstream/libobject-insideout-perl/current/t/46-singleton.t
    branches/upstream/libobject-insideout-perl/current/t/46a-singleton.t
Modified:
    branches/upstream/libobject-insideout-perl/current/Changes
    branches/upstream/libobject-insideout-perl/current/MANIFEST
    branches/upstream/libobject-insideout-perl/current/META.yml
    branches/upstream/libobject-insideout-perl/current/README
    branches/upstream/libobject-insideout-perl/current/examples/YAPI.pm
    branches/upstream/libobject-insideout-perl/current/lib/Bundle/Object/InsideOut.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pod
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Autoload.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Chained.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Cumulative.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dump.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dynamic.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Exception.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Foreign.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Metadata.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Overload.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Secure.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Universal.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Util.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/attributes.pm
    branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/lvalue.pm

Modified: branches/upstream/libobject-insideout-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/Changes?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/Changes (original)
+++ branches/upstream/libobject-insideout-perl/current/Changes Thu Mar 11 20:19:36 2010
@@ -1,4 +1,7 @@
 Revision history for Perl extension Object::InsideOut.
+
+3.64 Mon Mar  8 17:59:51 2010
+	- Added tests related to shared object destruction
 
 3.63 Fri Mar  5 13:11:48 EST 2010
 	- Fix for shared object destruction bug

Modified: branches/upstream/libobject-insideout-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/MANIFEST?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/MANIFEST (original)
+++ branches/upstream/libobject-insideout-perl/current/MANIFEST Thu Mar 11 20:19:36 2010
@@ -80,6 +80,8 @@
 t/43-overload.t
 t/44-data.t
 t/45-unused.t
+t/46-singleton.t
+t/46a-singleton.t
 t/99-pod.t
 t/test.pl
 t/EmptyParent.pm

Modified: branches/upstream/libobject-insideout-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/META.yml?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/META.yml (original)
+++ branches/upstream/libobject-insideout-perl/current/META.yml Thu Mar 11 20:19:36 2010
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Object-InsideOut
-version:            3.63
+version:            3.64
 abstract:           Comprehensive inside-out object support module
 author:
     - Jerry D. Hedden <jdhedden AT cpan DOT org>

Modified: branches/upstream/libobject-insideout-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/README?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/README (original)
+++ branches/upstream/libobject-insideout-perl/current/README Thu Mar 11 20:19:36 2010
@@ -1,4 +1,4 @@
-Object-InsideOut version 3.63
+Object-InsideOut version 3.64
 =============================
 
 This module provides comprehensive support for implementing classes using the

Modified: branches/upstream/libobject-insideout-perl/current/examples/YAPI.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/examples/YAPI.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/examples/YAPI.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/examples/YAPI.pm Thu Mar 11 20:19:36 2010
@@ -2,7 +2,7 @@
     use strict;
     use warnings;
 
-    our $VERSION = '3.63';
+    our $VERSION = '3.64';
 
     #####
     #
@@ -22,7 +22,7 @@
         $threaded_okay = !$@;
     }
 
-    use Object::InsideOut 3.63;
+    use Object::InsideOut 3.64;
 
     # Default progress indicator is a twirling bar
     my @yapi :Field
@@ -550,7 +550,7 @@
 =head1 SEE ALSO
 
 Annotated POD for Term::YAPI:
-L<http://annocpan.org/~JDHEDDEN/Object-InsideOut-3.63/examples/YAPI.pm>
+L<http://annocpan.org/~JDHEDDEN/Object-InsideOut-3.64/examples/YAPI.pm>
 
 L<Object::InsideOut>, L<threads>, L<Thread::Queue>
 

Modified: branches/upstream/libobject-insideout-perl/current/lib/Bundle/Object/InsideOut.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Bundle/Object/InsideOut.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Bundle/Object/InsideOut.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Bundle/Object/InsideOut.pm Thu Mar 11 20:19:36 2010
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '3.63';
+our $VERSION = '3.64';
 $VERSION = eval $VERSION;
 
 1;
@@ -42,9 +42,9 @@
 
 Test::Pod::Coverage 1.08        - Tests POD coverage
 
-threads 1.75                    - Support for threads
+threads 1.76                    - Support for threads
 
-threads::shared 1.32            - Support for sharing objects between threads
+threads::shared 1.33            - Support for sharing objects between threads
 
 Want 0.18                       - :lvalue accessor support
 
@@ -58,7 +58,7 @@
 
 Exception::Class 1.29           - Error handling
 
-Object::InsideOut 3.63          - Inside-out object support
+Object::InsideOut 3.64          - Inside-out object support
 
 URI 1.52                        - Used by LWP::UserAgent
 

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pm Thu Mar 11 20:19:36 2010
@@ -5,12 +5,12 @@
 use strict;
 use warnings;
 
-our $VERSION = '3.63';
+our $VERSION = '3.64';
 $VERSION = eval $VERSION;
 
-use Object::InsideOut::Exception 3.63;
-use Object::InsideOut::Util 3.63 qw(create_object hash_re is_it make_shared);
-use Object::InsideOut::Metadata 3.63;
+use Object::InsideOut::Exception 3.64;
+use Object::InsideOut::Util 3.64 qw(create_object hash_re is_it make_shared);
+use Object::InsideOut::Metadata 3.64;
 
 require B;
 

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pod
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pod?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pod (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut.pod Thu Mar 11 20:19:36 2010
@@ -4,7 +4,7 @@
 
 =head1 VERSION
 
-This document describes Object::InsideOut version 3.63
+This document describes Object::InsideOut version 3.64
 
 =head1 SYNOPSIS
 
@@ -3227,7 +3227,7 @@
 L<http://www.cpanforum.com/dist/Object-InsideOut>
 
 Annotated POD for Object::InsideOut:
-L<http://annocpan.org/~JDHEDDEN/Object-InsideOut-3.63/lib/Object/InsideOut.pm>
+L<http://annocpan.org/~JDHEDDEN/Object-InsideOut-3.64/lib/Object/InsideOut.pm>
 
 Source repository:
 L<http://code.google.com/p/object-insideout/>

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Autoload.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Autoload.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Autoload.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Autoload.pm Thu Mar 11 20:19:36 2010
@@ -172,7 +172,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Chained.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Chained.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Chained.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Chained.pm Thu Mar 11 20:19:36 2010
@@ -181,7 +181,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Cumulative.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Cumulative.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Cumulative.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Cumulative.pm Thu Mar 11 20:19:36 2010
@@ -206,11 +206,11 @@
 use strict;
 use warnings;
 
-our $VERSION = '3.63';
+our $VERSION = '3.64';
 $VERSION = eval $VERSION;
 
-use Object::InsideOut 3.63;
-use Object::InsideOut::Metadata 3.63;
+use Object::InsideOut 3.64;
+use Object::InsideOut::Metadata 3.64;
 
 my @VALUES  :Field :Arg(VALUES);
 my @CLASSES :Field :Arg(CLASSES);
@@ -260,7 +260,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dump.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dump.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dump.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dump.pm Thu Mar 11 20:19:36 2010
@@ -205,7 +205,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dynamic.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dynamic.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dynamic.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Dynamic.pm Thu Mar 11 20:19:36 2010
@@ -178,7 +178,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Exception.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Exception.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Exception.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Exception.pm Thu Mar 11 20:19:36 2010
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '3.63';
+our $VERSION = '3.64';
 $VERSION = eval $VERSION;
 
 # Exceptions generated by this module

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Foreign.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Foreign.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Foreign.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Foreign.pm Thu Mar 11 20:19:36 2010
@@ -270,7 +270,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Metadata.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Metadata.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Metadata.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Metadata.pm Thu Mar 11 20:19:36 2010
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '3.63';
+our $VERSION = '3.64';
 $VERSION = eval $VERSION;
 
 # Stores method metadata
@@ -99,7 +99,7 @@
 
 ### Object Interface ###
 
-use Object::InsideOut 3.63;
+use Object::InsideOut 3.64;
 
 my @CLASSES :Field;
 my @FOREIGN :Field;
@@ -268,7 +268,7 @@
 
 =head1 VERSION
 
-This document describes Object::InsideOut::Metadata version 3.63
+This document describes Object::InsideOut::Metadata version 3.64
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Overload.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Overload.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Overload.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Overload.pm Thu Mar 11 20:19:36 2010
@@ -83,7 +83,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Secure.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Secure.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Secure.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Secure.pm Thu Mar 11 20:19:36 2010
@@ -2,10 +2,10 @@
     use strict;
     use warnings;
 
-    our $VERSION = '3.63';
+    our $VERSION = '3.64';
     $VERSION = eval $VERSION;
 
-    use Object::InsideOut 3.63 ':hash_only';
+    use Object::InsideOut 3.64 ':hash_only';
 
     # Holds used IDs
     my %used :Field = ( 0 => undef );

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Universal.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Universal.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Universal.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Universal.pm Thu Mar 11 20:19:36 2010
@@ -211,7 +211,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Util.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Util.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/Util.pm Thu Mar 11 20:19:36 2010
@@ -5,10 +5,10 @@
 use strict;
 use warnings;
 
-our $VERSION = '3.63';
+our $VERSION = '3.64';
 $VERSION = eval $VERSION;
 
-use Object::InsideOut::Metadata 3.63;
+use Object::InsideOut::Metadata 3.64;
 
 ### Module Initialization ###
 

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/attributes.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/attributes.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/attributes.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/attributes.pm Thu Mar 11 20:19:36 2010
@@ -79,7 +79,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Modified: branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/lvalue.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/lvalue.pm?rev=54124&op=diff
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/lvalue.pm (original)
+++ branches/upstream/libobject-insideout-perl/current/lib/Object/InsideOut/lvalue.pm Thu Mar 11 20:19:36 2010
@@ -157,7 +157,7 @@
 
 
 # Ensure correct versioning
-($Object::InsideOut::VERSION == 3.63)
+($Object::InsideOut::VERSION == 3.64)
     or die("Version mismatch\n");
 
 # EOF

Added: branches/upstream/libobject-insideout-perl/current/t/46-singleton.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/t/46-singleton.t?rev=54124&op=file
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/t/46-singleton.t (added)
+++ branches/upstream/libobject-insideout-perl/current/t/46-singleton.t Thu Mar 11 20:19:36 2010
@@ -1,0 +1,56 @@
+use strict;
+use warnings;
+
+use Config;
+BEGIN {
+    if (! $Config{useithreads} || $] < 5.008) {
+        print("1..0 # Skip Threads not supported\n");
+        exit(0);
+    }
+}
+
+
+use threads;
+use threads::shared;
+
+if ($threads::shared::VERSION lt '1.33') {
+    print("1..0 # Skip Need threads::shared v1.33 or later\n");
+    exit(0);
+}
+
+if ($] == 5.008) {
+    require 't/test.pl';   # Test::More work-alike for Perl 5.8.0
+} else {
+    require Test::More;
+}
+Test::More->import();
+plan('tests' => 1);
+
+package Single; {
+    use Object::InsideOut qw(:SHARED);
+
+    my $singleton;
+    my %field1 :Field :All(f1);
+    my %field2 :Field;
+
+    sub new
+    {
+        my $thing = shift;
+
+        if (!$singleton) {
+            $singleton = $thing->Object::InsideOut::new(@_);
+        }
+
+        return $singleton;
+    }
+}
+
+package main;
+
+my $obj = Single->new(f1 => 'bork');
+
+is($obj->f1(), 'bork', 'Singleton fetch');
+
+# The real test is that no segfault occurs when this test exits
+
+# EOF

Added: branches/upstream/libobject-insideout-perl/current/t/46a-singleton.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libobject-insideout-perl/current/t/46a-singleton.t?rev=54124&op=file
==============================================================================
--- branches/upstream/libobject-insideout-perl/current/t/46a-singleton.t (added)
+++ branches/upstream/libobject-insideout-perl/current/t/46a-singleton.t Thu Mar 11 20:19:36 2010
@@ -1,0 +1,56 @@
+use strict;
+use warnings;
+
+use Config;
+BEGIN {
+    if (! $Config{useithreads} || $] < 5.008) {
+        print("1..0 # Skip Threads not supported\n");
+        exit(0);
+    }
+}
+
+
+use threads;
+use threads::shared;
+
+if ($threads::shared::VERSION lt '1.33') {
+    print("1..0 # Skip Need threads::shared v1.33 or later\n");
+    exit(0);
+}
+
+if ($] == 5.008) {
+    require 't/test.pl';   # Test::More work-alike for Perl 5.8.0
+} else {
+    require Test::More;
+}
+Test::More->import();
+plan('tests' => 1);
+
+package Single; {
+    use Object::InsideOut qw(:SHARED);
+
+    my $singleton;
+    my @field1 :Field :All(f1);
+    my @field2 :Field;
+
+    sub new
+    {
+        my $thing = shift;
+
+        if (!$singleton) {
+            $singleton = $thing->Object::InsideOut::new(@_);
+        }
+
+        return $singleton;
+    }
+}
+
+package main;
+
+my $obj = Single->new(f1 => 'bork');
+
+is($obj->f1(), 'bork', 'Singleton fetch');
+
+# The real test is that no segfault occurs when this test exits
+
+# EOF




More information about the Pkg-perl-cvs-commits mailing list