aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Elliot Ross <aaron@wawd.com>2015-03-31 13:23:45 +0000
committerAaron Elliot Ross <aaron@wawd.com>2015-03-31 13:23:45 +0000
commit5a372d137c5a0391f5e655c446af533a7cb22e60 (patch)
treeaefa957ada5ef607174f626b7b40d802c463463a
parent6e27c8ddf6ee2a74bf6a166be200023bc6f238b0 (diff)
downloadtimeout-decorator-5a372d137c5a0391f5e655c446af533a7cb22e60.tar.gz
Use setitimer to get sub-second timeouts.
-rw-r--r--timeout_decorator/timeout_decorator.py6
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: