small_func3.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:future_data_analyse 作者: ipqhjjybj 项目源码 文件源码
def execution_timeout(timeout):
    def timed_out(signum, sigframe):
        raise TimeoutError
    delay, interval = signal.setitimer(signal.ITIMER_REAL, timeout, 0)
    old_hdl = signal.signal(signal.SIGALRM, timed_out)
    now = time.time()
    try:
        yield
    finally:
        # inner timeout must be smaller, or the timer event will be delayed
        if delay:
          elapsed = time.time() - now
          delay = max(delay - elapsed, 0.000001)
        else:
          delay = 0
        signal.setitimer(signal.ITIMER_REAL, delay, interval)
        signal.signal(signal.SIGALRM, old_hdl)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号