Subject: | Segmentation faults in 64 bit threading perls |
We've been experiencing some problems with Kavorka not being thread safe on our 64-bit threaded perl. Eventually we narrowed it down to being a problem with Devel::Pragma, using the attached test code.
It doesn't blow up on a 32 bit threaded perl, apparently, and if we roll back to Devel::Pragma 0.54, it's fine too.
I'm raising this as an issue on the github queue as well.
Subject: | threading.t |
use strict;
use warnings;
use Test::More;
use Config;
BEGIN {
plan skip_all => "your perl does not support ithreads"
unless $Config{useithreads};
};
use threads;
{
package ThreadedExample;
use Devel::Pragma;
}
my $subref = sub {
my $id = shift;
note("id:$id");
return $id;
};
my @threads;
my @idents = qw/bar1 bar2 bar3 bar4 bar5 bar6/;
foreach my $foo_id (@idents)
{
push @threads, threads->create($subref, $foo_id);
}
my @results;
for my $thread (@threads) {
note("joining thread $thread");
push @results, $thread->join;
}
is_deeply(
[ sort @results ],
[ sort @idents ],
'expected return values',
);
done_testing;