Я часто использую следующий шаблон, чтобы установить верхнюю границу времени выполнения конкретного фрагмента кода в Perl:
my $TIMEOUT_IN_SECONDS = 5;
eval {
local $SIG{ALRM} = sub { die "alarm\n" };
alarm($TIMEOUT_IN_SECONDS);
# do stuff that might timeout.
alarm(0);
};
if ([email protected]) {
# handle timeout condition.
}
Мои вопросы:
- Правильно ли это сделать?
- Существуют ли какие-либо обстоятельства, при которых время выполнения может превышать $TIMEOUT_IN_SECONDS, или это вышеописанный метод пуленепробиваемый?