http://www.perlmonks.org?node_id=1008275


in reply to Re: hash elements are lost during reaping
in thread hash elements are lost during reaping

Thanks for the reply. My fork routine saves pids of children in another hash to be compared in the processing routine:

sub StartJob { my $pid; my $sid = shift; FORK: { if ($pid = fork) { # # This is the dispatcher! # $JobPIDs{$pid} = $sid; # add pid, sid pair to th +e hash } elsif ($pid == 0) { ....

The processing routine goes like this:

foreach $pid ( keys(%TrappedPIDs) ) { $rc = $TrappedPIDs{$pid}; print " CHECKING: trapped pid: $pid RC: $rc \n"; if ( exists($JobPIDs{$pid}) and $rc == 0 ) { # do the processing .. }
%TrappedPIDs is a global hash. How come it can be different?

Replies are listed 'Best First'.
Re^3: hash elements are lost during reaping
by roboticus (Chancellor) on Dec 11, 2012 at 11:41 UTC

    umitd:

    How come it can be different?

    With you showing only small code fragments, it's rather hard to say. It's kind of like the old joke:

    Goofus is searching for his diamond ring under a streetlamp.

    Gallant comes to help, and after about 15 minutes, he says "Hey--about where were you standing when you lost the ring?".

    Goofus: "Over there in the parking lot."

    Gallant (surprised): "Well, then why are you looking over here?"

    Goofus: "The light is better."

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.