I'm trying to use Thread::Pool::Simple to manage a basic thread pool, but when I try to dump out the hashref I pass in with Data::Dumper::Dumper or Data::Dump::dump I get strange errors:
Can't locate object method "FETCH" via package "threads::shared::tie"
+at .../opt/perl/lib/5.16.3/x86_64-linux-thread-multi/Data/Dumper.pm l
+ine 190.
I've tried to "unshare" the by copying it using Clone::clone but that didn't change the result either.
Any thoughts on what to try next?
Thanks.
Code to reproduce:
use strict;
use warnings;
use threads;
use threads::shared;
use Data::Dumper;
use Thread::Pool::Simple;
my $state :shared;
$state = shared_clone({test1 => {test1 => 123}, test2 => {test2 => 'ab
+c'}});
my $tp = Thread::Pool::Simple->new(min => 1, max => 10, do => [\&test]
+);
my $id1 = $tp->add($state->{test1});
my $id2 = $tp->add($state->{test2});
my $ret1= $tp->remove($id1);
my $ret2= $tp->remove($id2);
print "return 1: ".Dumper($ret1)."\n";
print "return 2: ".Dumper($ret2)."\n";
sub test {
my ($data) = @_;
print "Got Data: ".Dumper($data);
return {succes => 1};
}