From: Johannes Schindelin Date: Thu, 28 May 2026 13:11:24 GMT Subject: Re: [PATCH] compat/mingw: Allow SIGKILL to kill in mingw_kill. Message-ID: <7c0384e2-0d8c-17f2-9881-cf14b24c0a21@gmx.de> In-Reply-To: Hi Junio & Siddh, On Fri, 22 May 2026, Junio C Hamano wrote: > Siddh Raman Pant writes: > > > mingw_kill() only allows SIGTERM for killing a process. > > > > Let's also allow the natural SIGKILL for the same so that callers don't > > have to do ifdef soup for special Windows handling. > > [...] > > The current code only handles TERM (to terminate) or 0 (to probe) > and everything else results in EINVAL, so the updated behaviour is > to pretend as if TERM is sent and do whatever PROCESS_TERMINATE > does, instead of doing nothing and erroring with EINVAL. Which does > sound like an improvement over the status quo. > > What I am wondering is if there are different kind of "kill" in the > Windows land, just like there are distinction between TERM and KILL. > For example, the program ought to be able to block TERM but not > KILL. There are other termination-inducing signals like SIGQUIT but > until we start using them in our code, this emulation layer does not > have to know about them, I think. The version that that Git for Windows carries is actually really different. For one, it gives processes a chance to run their `atexit()` handlers when being terminated via `SIGTERM`. I'm afraid that the patch under discussion would severely conflict with Git for Windows' code. Git for Windows' code, that is, that should have been upstreamed a long time ago, but wasn't, out of time constraints. I'll try to polish the patches and upstream them. Ciao, Johannes