python: Windows эквивалент 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?

12
задан Claudiu 7 December 2011 в 18:20
поделиться