[pypy-svn] r61325 - pypy/trunk/pypy/tool

pedronis at codespeak.net pedronis at codespeak.net
Sun Jan 25 13:21:14 CET 2009


Author: pedronis
Date: Sun Jan 25 13:21:12 2009
New Revision: 61325

Added:
   pypy/trunk/pypy/tool/watchdog_nt.py
Log:
nt variant of watchdog that we had lying around



Added: pypy/trunk/pypy/tool/watchdog_nt.py
==============================================================================
--- (empty file)
+++ pypy/trunk/pypy/tool/watchdog_nt.py	Sun Jan 25 13:21:12 2009
@@ -0,0 +1,34 @@
+import sys, os
+import threading
+import win32api, pywintypes
+
+PROCESS_TERMINATE = 0x1
+
+timeout = float(sys.argv[1])
+timedout = False
+
+def childkill(pid):
+    global timedout
+    timedout = True
+    sys.stderr.write("="*26 + "timedout" + "="*26 + "\n")
+    try:
+        win32api.TerminateProcess(pid, 1)
+    except pywintypes.error:
+        pass
+
+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