build-tools icon indicating copy to clipboard operation
build-tools copied to clipboard

Ctrl+C When Building on Windows Continues Building

Open dsanders11 opened this issue 4 years ago • 1 comments

I think there's several layers to this one, having to do with child processes and all that jazz.

Issue is if you use Ctrl+C to try to end a e build, it will keep running, kind of. It will continue any tasks already created for Goma until that runs dry. Since -j 200 is used with Goma, that means compilation can continue for 10 minutes after you tried to cancel the build.

The behavior if you run the raw ninja -j 200 electron command is that Ctrl+C ends the build with the message ninja: build stopped: interrupted by user..

Interruption on Windows is really messed up, so there's probably a lot of moving parts to this one.

If you run e-build.js directly you get a little closer to it working. I was able to get the desired behavior by adding a process.on("SIGINT", () => {}) handler, but I have no idea why that worked. I was originally adding it to log to see if it would be called - the log message was never called but the build ended as I wanted. It's almost as if adding that unhooked some other code, but in testing you can add as many process.on hooks for SIGINT as you want, so I don't know why an empty handler would change the behavior.

dsanders11 avatar Nov 10 '20 23:11 dsanders11