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}; }
In reply to Error trying to dump a hash that is shared by lost953
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |