F
friend.05
My scipt is using fork so there are child processes. Sometimes my
script runs properly and output is correct. But sometime my script
gets stuck just after exiting child process. And this does happen
always.
I am not sure why is this happening. Any suggestion or how can I debug
my script.
Below is psudo code. (not sure if this helps, it is juist snap shot)
foreach my $w (keys %worklist) {
my $child;
unless ($child = fork()) {
die("connot for: $!") unless defined $child;
foreach my $file (@{$worklist{$w}}) {
#reading files processing of data and
creating hash tables.
}
#ouput files from hash tables. outfile files will be
for each child.
print "Worker $w exiting\n"; #child
exiting
(#it gets stuck after printing this statement)
exit;
}
push(@workers, $child); #array of child PID
}
#wating for each child to finish.
foreach my $pid (@workers) {
$s = waitpid($pid, 0);
print "$s finished\n";
}
Thanks.
script runs properly and output is correct. But sometime my script
gets stuck just after exiting child process. And this does happen
always.
I am not sure why is this happening. Any suggestion or how can I debug
my script.
Below is psudo code. (not sure if this helps, it is juist snap shot)
foreach my $w (keys %worklist) {
my $child;
unless ($child = fork()) {
die("connot for: $!") unless defined $child;
foreach my $file (@{$worklist{$w}}) {
#reading files processing of data and
creating hash tables.
}
#ouput files from hash tables. outfile files will be
for each child.
print "Worker $w exiting\n"; #child
exiting
(#it gets stuck after printing this statement)
exit;
}
push(@workers, $child); #array of child PID
}
#wating for each child to finish.
foreach my $pid (@workers) {
$s = waitpid($pid, 0);
print "$s finished\n";
}
Thanks.