[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