diff options
author | Aaron Elliot Ross <aaron@wawd.com> | 2015-03-31 13:23:45 +0000 |
---|---|---|
committer | Aaron Elliot Ross <aaron@wawd.com> | 2015-03-31 13:23:45 +0000 |
commit | 5a372d137c5a0391f5e655c446af533a7cb22e60 (patch) | |
tree | aefa957ada5ef607174f626b7b40d802c463463a | |
parent | 6e27c8ddf6ee2a74bf6a166be200023bc6f238b0 (diff) | |
download | timeout-decorator-5a372d137c5a0391f5e655c446af533a7cb22e60.tar.gz |
Use setitimer to get sub-second timeouts.
-rw-r--r-- | timeout_decorator/timeout_decorator.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/timeout_decorator/timeout_decorator.py b/timeout_decorator/timeout_decorator.py index 3639b45..7c5f565 100644 --- a/timeout_decorator/timeout_decorator.py +++ b/timeout_decorator/timeout_decorator.py @@ -40,7 +40,7 @@ def timeout(seconds=None, use_signals=True): :param seconds: optional time limit in seconds. If None is passed, no timeout is applied. This adds some flexibility to the usage: you can disable timing out depending on the settings. - :type seconds: int + :type seconds: float :param use_signals: flag indicating whether signals should be used for timing function out or the multiprocessing :type use_signals: bool @@ -63,12 +63,12 @@ def timeout(seconds=None, use_signals=True): new_seconds = kwargs.pop('timeout', seconds) if new_seconds: old = signal.signal(signal.SIGALRM, handler) - signal.alarm(new_seconds) + signal.setitimer(signal.ITIMER_REAL, new_seconds) try: return function(*args, **kwargs) finally: if new_seconds: - signal.alarm(0) + signal.setitimer(signal.ITIMER_REAL, 0) signal.signal(signal.SIGALRM, old) return new_function else: |