Follow-up Comment #3, bug #51237 (project make): I have created test application, which detaches console and sleeps for 1000 seconds:
#include <windows.h> int main(int argc, char *argv[]) { FreeConsole(); Sleep(1000000); return 0; } And tested it with this makefile: # run make -j -O, then press Ctrl+C all: a b c d CMD := C:\test.exe a:;$(CMD) b:;$(CMD) c:;$(CMD) d:;$(CMD) .PHONY: all a b c d I see next behaviors of original/pached make on Ctrl+C. 1) Original make-4.2.1. - Main thread is suspended in WaitForMultipleObjects. - Ctrl+C handler thread waits for one of 4 sub-processes in WaitForMultipleObjects. 2) Patched make-4.2.1. - Main thread waits for one of 4 sub-processes in WaitForMultipleObjects. - Ctrl+C handler thread waits for Main thread in WaitForSingleObject. Both makes hang for 1000 seconds. ... For this test, it is possible to fix Ctrl+C handler in original make, so it will kill sub-processes. (replace SIGTERM with SIGINT in fatal_error_signal, because "The SIGILL and SIGTERM signals are not generated under Windows. They are included for ANSI compatibility"). And this is works, but only top child processes get killed: If I use CMD := cmd.exe /c "C:\test.exe" Then by Ctrl+C, make kills only cmd.exe, and C:\test.exe continues to live. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?51237> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make