On Mon, Jan 26, 2004 at 11:33:07AM -0800, Henri Asseily wrote:
> 
> my $alarm = 0;
> eval {
>       local $SIG{ALRM} = sub { $alarm=1 };
>       alarm(3);
>       $dbh = DBI->connect( ... );
>       alarm(0);
> };
> alarm(0);
> 
> 
> is there really a need to alarm(0) outside the eval?

Yes.

> Basically, if the 
> eval fails, doesn't the alarm(3) automatically get disabled due to it 
> being in the eval block?

No. The $SIG{ALRM} gets undone because of the local(), but the alarm() doesn't.

> And if we do need to have the alarm(0) both in and out of the eval 
> block, are there any unforseen consequences to setting alarm(0) a 
> couple of times in a row?

No.

Tim

Reply via email to