|
From: | Troy Runkel |
Subject: | Improving SIGINT handling on Windows. |
Date: | Mon, 11 Nov 2013 22:35:19 +0000 |
Greetings, On UNIX, when you send SIGINT or Ctrl-C to a make process using –j, the child processes terminate and the child targets are removed if they exist. According to this post, it’s the responsibility of the OS to send signals to all the processes
in the same process group. So all processes get the SIGINT, including all instances of make AND all programs make invokes. http://lists.gnu.org/archive/html/make-w32/2005-08/msg00005.html On Windows, it appears that SIGINT is not propagated to make child processes by the OS. This post indicates that when make receives a SIGINT it waits for all child processes to exit before proceeding. http://savannah.gnu.org/bugs/?40322 Would it be possible to update make on Windows to behave more like make on UNIX? I have a use case where ‘make –j32’ is invoked on 32-core Windows servers. Occasionally we need to stop the build and update the
build area, but it can take some time for the 32+ compilers/linkers/etc. to finish. The ability to send a SIGINT to the top-level make and have it propagate throughout the process group would be very helpful. Could something like this be accomplished using Console Process Groups? http://msdn.microsoft.com/en-us/library/windows/desktop/ms682083(v=vs.85).aspx Thought I’d ask for your opinions before I investigate further. Thanks! --Troy Runkel |
[Prev in Thread] | Current Thread | [Next in Thread] |