def call_with_timeout()

in data/envs/babyai/create_babyai_dataset.py [0:0]


def call_with_timeout(func, args=[], kwargs={}, timeout_duration=1.0):
    # Set the signal handler
    signal.signal(signal.SIGALRM, timeout_handler)

    # Set the interval timer
    signal.setitimer(signal.ITIMER_REAL, timeout_duration, 0)

    try:
        result = func(*args, **kwargs)
    except TimeoutError as e:
        raise e
    finally:
        # Disable the interval timer
        signal.setitimer(signal.ITIMER_REAL, 0)
    return result