New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PATCH] Upgrade to threads::shared 1.51 #15289
Comments
From @jdheddenCreated by @jdheddenThe attached patch upgrades the 'threads-shared' module to v1.51. The main purpose of this patch is to sync blead and CPAN in The patch does not contain any functional changes, but does The patch contains the following POD update: Blessing a shared item after it has been nested in another shared item my $foo = &share({}); Therefore, you should bless objects before sharing them. This patch is in response to: Perl Info
|
From @tonycozOn Fri Apr 22 12:31:09 2016, jdhedden@cpan.org wrote:
There's no attachment. Tony |
The RT System itself - Status changed from 'new' to 'open' |
From @jdheddenWhoops. Now there is. On Fri, Apr 22, 2016 at 7:21 PM, Tony Cook via RT <perlbug-followup@perl.org
|
From @jdhedden0001-Upgrade-to-threads-shared-1.51.patchFrom 4a672f8425877662b513211546ce5a118d0c45d5 Mon Sep 17 00:00:00 2001
From: jdhedden <jdhedden@cpan.org>
Date: Fri, 22 Apr 2016 19:23:01 -0400
Subject: [PATCH] Upgrade to threads::shared 1.51
---
Porting/Maintainers.pl | 2 +-
dist/threads-shared/lib/threads/shared.pm | 15 +++++++++++++--
dist/threads-shared/shared.xs | 14 --------------
3 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index d861ccb..5554d84 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -1199,7 +1199,7 @@ use File::Glob qw(:case);
},
'threads::shared' => {
- 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.48.tar.gz',
+ 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.51.tar.gz',
'FILES' => q[dist/threads-shared],
'EXCLUDED' => [
qw( examples/class.pl
diff --git a/dist/threads-shared/lib/threads/shared.pm b/dist/threads-shared/lib/threads/shared.pm
index dc76ab2..89a79a4 100644
--- a/dist/threads-shared/lib/threads/shared.pm
+++ b/dist/threads-shared/lib/threads/shared.pm
@@ -7,7 +7,7 @@ use warnings;
use Scalar::Util qw(reftype refaddr blessed);
-our $VERSION = '1.50'; # Please update the pod, too.
+our $VERSION = '1.51'; # Please update the pod, too.
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -195,7 +195,7 @@ threads::shared - Perl extension for sharing data structures between threads
=head1 VERSION
-This document describes threads::shared version 1.48
+This document describes threads::shared version 1.51
=head1 SYNOPSIS
@@ -558,6 +558,17 @@ they contain will be lost.
Therefore, populate such variables B<after> declaring them as shared. (Scalar
and scalar refs are not affected by this problem.)
+Blessing a shared item after it has been nested in another shared item does
+not propagate the blessing to the shared reference:
+
+ my $foo = &share({});
+ my $bar = &share({});
+ $bar->{foo} = $foo;
+ bless($foo, 'baz'); # $foo is now of class 'baz',
+ # but $bar->{foo} is unblessed.
+
+Therefore, you should bless objects before sharing them.
+
It is often not wise to share an object unless the class itself has been
written to support sharing. For example, an object's destructor may get
called multiple times, once for each thread's scope exit. Another danger is
diff --git a/dist/threads-shared/shared.xs b/dist/threads-shared/shared.xs
index e323788..a019732 100644
--- a/dist/threads-shared/shared.xs
+++ b/dist/threads-shared/shared.xs
@@ -1166,20 +1166,6 @@ const MGVTBL sharedsv_array_vtbl = {
};
-#if 0
-/* XXX unused dead code */
-/* Recursively unlocks a shared sv. */
-
-static void
-Perl_sharedsv_unlock(pTHX_ SV *ssv)
-{
- user_lock *ul = S_get_userlock(aTHX_ ssv, 0);
- assert(ul);
- recursive_lock_release(aTHX_ &ul->lock);
-}
-#endif
-
-
/* Recursive locks on a sharedsv.
* Locks are dynamically scoped at the level of the first lock.
*/
--
2.8.1
|
From @rjbsThanks, applied! -- |
@rjbs - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#127963 (status was 'resolved')
Searchable as RT127963$
The text was updated successfully, but these errors were encountered: