(seconds)
| 119 | |
| 120 | @contextlib.contextmanager |
| 121 | def time_limit(seconds): |
| 122 | def signal_handler(signum, frame): |
| 123 | raise TimeoutException("Timed out!") |
| 124 | |
| 125 | signal.setitimer(signal.ITIMER_REAL, seconds) |
| 126 | signal.signal(signal.SIGALRM, signal_handler) |
| 127 | try: |
| 128 | yield |
| 129 | finally: |
| 130 | signal.setitimer(signal.ITIMER_REAL, 0) |
| 131 | |
| 132 | |
| 133 | @contextlib.contextmanager |