in reply to Parallel Processing in Perl
MCE has been released for Perl. This is how one could do this with MCE. Not knowing what you're wanting to do in the main caller, the example has 2 callback functions.
Both workers run in parallel below. Workers never exit due to running inside a never ending loop. The do method passes data back to the main process or thread.
http://code.google.com/p/many-core-engine-perl/
https://metacpan.org/module/MCE
use MCE; sub proc1 { my $hash_ref = shift; for (keys %{ $hash_ref }) { print $_, ': ', $hash_ref->{$_}, "\n"; } } sub proc2 { my $hash_ref = shift; for (keys %{ $hash_ref }) { print $_, ': ', $hash_ref->{$_}, "\n"; } } my $mce = MCE->new( max_workers => 2, user_func => sub { my ($self) = @_; while (1) { if ($self->wid == 1) { my %hash1 = ( 'key1' => 'value1' ); $self->do('proc1', \%hash1); } else { my %hash2 = ( 'key2' => 'value2' ); $self->do('proc2', \%hash2); } sleep(600); } } ); $mce->run;
|
|---|