> Date: Mon, 1 Aug 2005 22:37:57 -0400 > Cc: Eli Zaretskii <[EMAIL PROTECTED]>, [email protected] > From: "Paul D. Smith" <[EMAIL PROTECTED]> > > %% "J. Grant" <[EMAIL PROTECTED]> writes: > > jg> Ok. thank you for explaining. So is the reason the two main.exe do > jg> not terminate because my main.c program does not handle SIGINT? > > I was assuming they don't terminate because the operating system > (Windows) is sending the SIGINT to only the "main" program (in this case > make), and not sending it to all the processes that make invokes. In > other words, Windows doesn't have the concept of a process group or, at > least, it doesn't work the same way.
Windows _does_ have the notion of process groups; what it doesn't have is the concept of signals. Signals are emulated on Windows. So the issue here is how are the emulated signals delivered to several programs that run concurrently. I'm guessing that SIGINT is delivered only to the program that Windows considers to be currently in the foreground, but not to the others. My hope is that the exit status of the interrupted program somehow tells that it was interrupted. If so, we could propagate that knowledge back into Make, and handle it correctly. But I need time to investigate all this, and that won't happen until the next weekend. _______________________________________________ Make-w32 mailing list [email protected] http://lists.gnu.org/mailman/listinfo/make-w32
