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;


Reply via email to