make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Improving SIGINT handling on Windows.


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

http://stackoverflow.com/questions/1453520/run-arbitrary-subprocesses-on-windows-and-still-terminate-cleanly

 

Thought I’d ask for your opinions before I investigate further.

 

Thanks!

 

--Troy Runkel

 

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]