gpt4 book ai didi

perl - 如何在Perl中进行超时?

转载 作者:行者123 更新时间:2023-12-03 12:17:04 25 4
gpt4 key购买 nike

我经常使用以下模式来设置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 ($@) {
# handle timeout condition.
}

我的问题:
  • 这是正确的方法吗?
  • 在任何情况下运行时间都可能超过$ TIMEOUT_IN_SECONDS,或者上述方法是否安全?
  • 最佳答案

    您可能想看看Sys::SigAction。我自己没有使用过,但是它有some glowing reviews

    要注意的一件事是,“可能超时的东西”是使用sleep还是alarm本身。另外,在错误处理代码中,我假设您已经为超时以外的错误做好了准备。

    关于perl - 如何在Perl中进行超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423288/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com