build-tools
build-tools copied to clipboard
Ctrl+C When Building on Windows Continues Building
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.