martine/ninja — pull request #524 by pck (2013-03-31 20:52:19+00:00)
Title: Interrupting non-trivial commands on Cygwin

Hello

When the user presses Ctrl-C to interrupt a build command on Cygwin Ninja will wait until the /bin/sh child process is killed manually. For some reason only commands with a semicolon cause this error. E.g.:

```
rule test
command = sleep 10; echo done
build test: test
default test
```

Disabling setpgid(0, 0) on Cygwin appears to fix these problems. I checked it with the given small example and repeatedly interrupted (and restarted) CMake build. No process survived the interruptions. No additional unit tests are broken. (DiskInterfaceTest.StatBadPath fails)

I must admit that I don't understand what I'm doing or what the original code is supposed to accomplish in the first place. It would be great if someone else could examine this issue in more detail.

Kind regards, Paul