RE: Free to wrong pool 2227b8 not 3d5a2aa0 at C:/Perl/lib/XSLoader.pm line -1.
[email protected] ("Jerry D. Hedden")
| Newsgroups | perl.ithreads |
|---|---|
| Message-ID | <20060714183339.fb30e530d17747c2b054d625b8945d88.116681367b.wbe@email.secureserver.net> |
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;