summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorPaul Boca <pboca@cloudbasesolutions.com>2016-08-02 17:45:39 +0000
committerGurucharan Shetty <guru@ovn.org>2016-08-03 08:23:39 -0700
commit36d516346a9a780342db065eb016bd3015537b8f (patch)
tree1d24933a26fe70eb95d9cfa54f16fe8fc7f4b758 /python
parent922247c68438d5718dbfbbb11d6c4bb0799105c7 (diff)
downloadopenvswitch-36d516346a9a780342db065eb016bd3015537b8f.tar.gz
python tests: Implemented signal.alarm for Windows
signal.alarm is not available in Windows and would trigger an exception when called. Implemented this to mentain compatibility between Windows and Linux for python tests. Signed-off-by: Paul-Daniel Boca <pboca@cloudbasesolutions.com> Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Gurucharan Shetty <guru@ovn.org>
Diffstat (limited to 'python')
-rw-r--r--python/ovs/fatal_signal.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/python/ovs/fatal_signal.py b/python/ovs/fatal_signal.py
index 730803922..719f21b0e 100644
--- a/python/ovs/fatal_signal.py
+++ b/python/ovs/fatal_signal.py
@@ -15,6 +15,7 @@
import atexit
import os
import signal
+import sys
import ovs.vlog
@@ -134,3 +135,25 @@ def _init():
if signal.getsignal(signr) == signal.SIG_DFL:
signal.signal(signr, _signal_handler)
atexit.register(_atexit_handler)
+
+
+def signal_alarm(timeout):
+ if sys.platform == "win32":
+ import os
+ import time
+ import threading
+
+ class Alarm (threading.Thread):
+ def __init__(self, timeout):
+ super(Alarm, self).__init__()
+ self.timeout = timeout
+ self.setDaemon(True)
+
+ def run(self):
+ time.sleep(self.timeout)
+ os._exit(1)
+
+ alarm = Alarm(timeout)
+ alarm.start()
+ else:
+ signal.alarm(timeout)