On Mon, Dec 08, 2003 at 06:48:17PM -0800, david wrote:
> eval{
> 
>         local $SIG{ALRM} = sub { die 'alarm' };
> 
>         $child = fork;
> 
>         die 'fork' unless(defined $child);
> 
>         if($child){
>                 #--
>                 #-- give child 5 seconds to complete
>                 #--
>                 alarm(5);
>                 wait;
>                 alarm(0);
>         }else{
>                 system("sleep $ARGV[0]");

This doesn't work, because system forks itself:

  Parent
  `- child1 (opened by fork)
    `- child2 (opend by system of child1)

And $child holds the pid of the child opened by fork. So I'm using

  exec($prog, @args);

at this point, and everything works fine.

>                 exit;
>         }
> };

Thank you for help.
  Mik

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to