Threads and shared blessed references

V

Vetle Roeim

Quote from threads::shared (Perl 5.8.3):

"bless" is not supported on shared references. In the current version,
"bless" will only bless the thread local reference and the blessing
will not
propagate to the other threads.

In other words, it's not possible to share references to objects. I.e.
the
following shouldn't work:

package Foo::Bar;
use threads;
use threads::shared;
sub new { my $self = &share( {} ); bless $self, shift; }
sub zot { print "zot\n"; }

my $foo = Foo::Bar->new;

threads->create( sub {
$foo->zot;
}
)->join;

Is that a correct interpretation? Because the code example does actually
work
without any problems.

I also found a mail that indicates that blessing of sharede references
should
indeed work:

<URL:http://groups.google.com/[email protected]&output=gplain>

Umm... So I guess my question is: is it safe to share blessed references
among
threads? :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top