#!/usr/bin/perl
use strict;
use warnings;
use Thread::Pool;
my %resolved : shared;
my $pool = Thread::Pool->new(
{
workers => 3,
do => \&do,
monitor => \&monitor,
}
);
$pool->job($_) for 1 .. 100;
$pool->shutdown;
print $_, "\t", $resolved{$_}, $/ for sort { $b <=> $a } keys %resolved;
sub do
{
$resolved{$_[0]} = $_[0] * $_[0];
$_[0];
}
sub monitor {return 1}
####
#!/usr/bin/perl
use strict;
use warnings;
use Thread::Pool;
my %resolved : shared;
my $pool = Thread::Pool->new(
{
workers => 3,
do => \&do,
monitor => \&monitor,
}
);
$pool->job($_) for 1 .. 100;
$pool->shutdown;
print join("\t",($_,$resolved{$_}->{2},$resolved{$_}->{3},$resolved{$_
+}->{4})), $/ for sort { $b <=> $a } keys %resolved;
sub do
{
my %sh;
$sh{2} = $_[0] * $_[0];
$sh{3} = $_[0] * $_[0] * $_[0];
$sh{4} = $_[0] * $_[0] * $_[0] * $_[0];
$resolved{$_[0]} = \%sh;
$_[0];
}
sub monitor {return 1}
####
Cannot find result for streaming job 1 at /usr/lib/perl5/site_perl/5.8.8/Thread/Pool.pm (loaded on demand from offset 20056 for 2428 bytes) line 769.