[pypy-commit] pypy default: add watchdog_nt.py lost in split-rpython
bdkearns
noreply at buildbot.pypy.org
Mon Jan 28 09:14:14 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r60575:c73d9156092a
Date: 2013-01-28 03:08 -0500
http://bitbucket.org/pypy/pypy/changeset/c73d9156092a/
Log: add watchdog_nt.py lost in split-rpython
diff --git a/rpython/tool/watchdog_nt.py b/rpython/tool/watchdog_nt.py
new file mode 100644
--- /dev/null
+++ b/rpython/tool/watchdog_nt.py
@@ -0,0 +1,33 @@
+import sys, os
+import threading
+import ctypes
+
+def childkill(pid):
+ global timedout
+ timedout = True
+ sys.stderr.write("==== test running for %d seconds ====\n" % timeout)
+ sys.stderr.write("="*26 + "timedout" + "="*26 + "\n")
+ ctypes.windll.kernel32.TerminateProcess(pid, 1)
+
+if __name__ == '__main__':
+ PROCESS_TERMINATE = 0x1
+
+ timeout = float(sys.argv[1])
+ timedout = False
+
+ pid = os.spawnv(os.P_NOWAIT, sys.argv[2], sys.argv[2:])
+
+ t = threading.Timer(timeout, childkill, (pid,))
+ t.start()
+ while True:
+ try:
+ pid, status = os.waitpid(pid, 0)
+ except KeyboardInterrupt:
+ continue
+ else:
+ t.cancel()
+ break
+
+ #print 'status ', status >> 8
+ sys.exit(status >> 8)
+
More information about the pypy-commit
mailing list