in reply to Parallel:ForkManager how to pass back a list
You can pass back whatever you want. I just started using this module recently, and needed to pass back a delete list and an insert list. So my run_on_finish sub starts off with this ..
That sets things up for when a kid finishes and puts something into the return parameter. Then, in the kid code, I do this:$pfm->run_on_finish ( sub { my ($pid, $exit_code, $ident, $exit_signal, $core_dump, $data_structure_reference) = @_; if ( defined $data_structure_reference ) { my $delete_list = $data_structure_reference->{delete_list}; my $insert_list = $data_structure_reference->{insert_list};
and it just works. Magic.if ( keys %delete_list || keys %insert_list ) { $pfm->finish ( 0, { delete_list => \%delete_list, insert_list => \%insert_list } ); } else { $pfm->finish; }
|
---|