Rob Chuah wrote: > While trying to use the sample code from the CPAN on > Parallel::ForkManager, I get an error "Free to wrong pool 2227b8 not > 3d5a2aa0 at C:/Perl/lib/XSLoader.pm line -1." > > I am running Perl v5.8.8 built for MSWin32-x86-multi-thread. Platform > is WinXP SP2. > > Below are the codes > > use LWP::Simple; > use Parallel::ForkManager; > > ... > > @links=( > ["http://www.foo.bar/rulez.data","rulez_data.txt"], > ["http://new.host/more_data.doc","more_data.doc"], > ... > ); > > ... > > # Max 30 processes for parallel download > my $pm = new Parallel::ForkManager(30); > > foreach my $linkarray (@links) { > $pm->start and next; # do the fork > > my ($link,$fn) = @$linkarray; > warn "Cannot get $fn from $link" > if getstore($link,$fn) != RC_OK; > > $pm->finish; # do the exit in the child process > } > $pm->wait_all_children;
I was not able to reproduce your error. I tried the following code with ActivePerl 5.8.8 on WinXP SP2, and it ran without any errors or warnings: use LWP::Simple; use Parallel::ForkManager; @links=( ["http://feeds.feedburner.com/Evolution101.xml","evo.xml"], ["http://feeds.wnyc.org/radiolab.xml","rl.xml"], ); my $pm = new Parallel::ForkManager(30); foreach my $linkarray (@links) { $pm->start and next; my ($link, $fn) = @$linkarray; if (getstore($link,$fn) != RC_OK) { warn "Cannot get $fn from $link" } $pm->finish; } $pm->wait_all_children;
