$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: troy_at_[hidden]
Date: 2008-06-14 21:53:21
Author: troy
Date: 2008-06-14 21:53:20 EDT (Sat, 14 Jun 2008)
New Revision: 46403
URL: http://svn.boost.org/trac/boost/changeset/46403
Log:
Windows support:  kill subprocesses differently on unix/windows in case of timeout.  Use 'platform' module, not 'os.uname'
Added:
   branches/CMake/release/tools/build/CMake/unix_kill.py.in   (contents, props changed)
   branches/CMake/release/tools/build/CMake/windows_kill.py.in   (contents, props changed)
Text files modified: 
   branches/CMake/release/tools/build/CMake/BoostBuildSlave.cmake   |    13 +++++++++++++                           
   branches/CMake/release/tools/build/CMake/boost_build_slave.py.in |     4 ++--                                    
   branches/CMake/release/tools/build/CMake/marshal.py.in           |     4 ++--                                    
   3 files changed, 17 insertions(+), 4 deletions(-)
Modified: branches/CMake/release/tools/build/CMake/BoostBuildSlave.cmake
==============================================================================
--- branches/CMake/release/tools/build/CMake/BoostBuildSlave.cmake	(original)
+++ branches/CMake/release/tools/build/CMake/BoostBuildSlave.cmake	2008-06-14 21:53:20 EDT (Sat, 14 Jun 2008)
@@ -41,6 +41,19 @@
     )
 endforeach()
 
+if(WIN32)
+  configure_file(tools/build/CMake/windows_kill.py.in
+    ${BOOST_BUILD_SLAVE_PYTHONPATH}/kill_subprocess.py
+    COPYONLY
+    )
+else(WIN32)
+  configure_file(tools/build/CMake/unix_kill.py.in
+    ${BOOST_BUILD_SLAVE_PYTHONPATH}/kill_subprocess.py
+    COPYONLY
+    )
+endif(WIN32)
+
+
 #
 # the test driver is either marshal or passthru depending on whether
 # you're in build slave mode or not.  The compilation/link rules
Modified: branches/CMake/release/tools/build/CMake/boost_build_slave.py.in
==============================================================================
--- branches/CMake/release/tools/build/CMake/boost_build_slave.py.in	(original)
+++ branches/CMake/release/tools/build/CMake/boost_build_slave.py.in	2008-06-14 21:53:20 EDT (Sat, 14 Jun 2008)
@@ -11,14 +11,14 @@
 #  Utilities, variables, imports for build slave python
 #
 
-import os, os.path, marshal, xmlrpclib, pysvn, socket
+import os, os.path, marshal, xmlrpclib, pysvn, socket, platform
 from pprint import pprint
 
 repo_path = "@CMAKE_SOURCE_DIR@"
 client = pysvn.Client()
 svn_entry = client.info(repo_path)
 fqdn = socket.getfqdn()
-uname = os.uname()
+uname = platform.uname()
 toolset = "@BOOST_TOOLSET@"
 
 timeout_seconds = @BOOST_BUILD_SLAVE_TIMEOUT@
Modified: branches/CMake/release/tools/build/CMake/marshal.py.in
==============================================================================
--- branches/CMake/release/tools/build/CMake/marshal.py.in	(original)
+++ branches/CMake/release/tools/build/CMake/marshal.py.in	2008-06-14 21:53:20 EDT (Sat, 14 Jun 2008)
@@ -17,6 +17,7 @@
 
 import datetime, time, signal
 from subprocess import Popen, PIPE
+from kill_subprocess import kill_subprocess
 
 log = os.path.join(sys.argv[1], "Log.marshal")
 op = sys.argv[2]
@@ -40,8 +41,7 @@
         time.sleep(1)
         now = datetime.datetime.now()
         if (now - starttime).seconds > timeout_seconds:
-            os.kill(subproc.pid, signal.SIGKILL)
-            os.waitpid(-1, os.WNOHANG)
+            kill_subprocess(subproc.pid)
             e = OSError()
             e.errno = 666
             e.message = e.strerror = "TIMEOUT AFTER %d SECONDS" % timeout_seconds
Added: branches/CMake/release/tools/build/CMake/unix_kill.py.in
==============================================================================
--- (empty file)
+++ branches/CMake/release/tools/build/CMake/unix_kill.py.in	2008-06-14 21:53:20 EDT (Sat, 14 Jun 2008)
@@ -0,0 +1,6 @@
+import os
+def kill_subprocess(pid):
+    os.kill(subproc.pid, signal.SIGKILL)
+    os.waitpid(-1, os.WNOHANG)
+    
+
Added: branches/CMake/release/tools/build/CMake/windows_kill.py.in
==============================================================================
--- (empty file)
+++ branches/CMake/release/tools/build/CMake/windows_kill.py.in	2008-06-14 21:53:20 EDT (Sat, 14 Jun 2008)
@@ -0,0 +1,5 @@
+import os
+def kill_subprocess(pid):
+    cmd = 'TASKKILL /PID ' + str(pid) + ' /T /F'
+    print "Timeout, killing subprocess:\n" + cmd
+    os.popen(cmd)