Some options:
- parent sends kill signal to child when parent processing is complete. Child dies. parent reaps child and exits (or continues, I suppose).
- reverse the roll of parent and child. The child does the computing and the parent handles the counting&display. Child exits when complete and parent reaps child via SIG CHLD handler.
if(my $pid=fork){
while(my $c = ReadKey){
#doing something... ;
}
kill( HUP => $pid );
wait(0);
}
else {
my $count = 0;
while(1){
sleep(1);
print $count++;
}
}
if(my $pid=fork){
#parent
my $run = 1;
$SIG{CHLD} = sub {
$deadchildpid = wait;
$run = 0
};
my $count = 0;
while($run){
sleep(1);
print $count++;
}
}
else {
#child
while(my $c = ReadKey){
#doing something... ;
}
}