私は、このデコレータを持っている:のpython:SIGALRM
def timed_out(timeout):
def decorate(f):
if not hasattr(signal, "SIGALRM"):
return f
def handler(signum, frame):
raise TimedOutExc()
@functools.wraps(f)
def new_f(*args, **kwargs):
old = signal.signal(signal.SIGALRM, handler)
signal.alarm(timeout)
try:
result = f(*args, **kwargs)
finally:
signal.signal(signal.SIGALRM, old)
signal.alarm(0)
return result
new_f.func_name = f.func_name
return new_f
return decorate
コードのみLinux上で何もしない、しかし、Windows上のように、何のSIGALRM
はありません。同様に、Windowsのこのコードの動作を持ってする最も簡単な方法は何でしょうか?
誰かがこの答えが間違っているものを指摘してもらえますか?私はそれ自身で何の問題も見ません。 (私は著者です) –