[PATCH 1 of 2] win32: spawndetached returns pid of detached process and not of cmd.exe
yuya at tcha.org
Wed Feb 12 05:46:11 CST 2014
On Tue, 11 Feb 2014 23:50:29 +0100, Adrian Buehlmann wrote:
> On 2014-02-11 23:06, Simon Heimberg wrote:
> > --On 2014-02-11 22:09 +0900 Yuya Nishihara <yuya at tcha.org> wrote:
> >> On Mon, 10 Feb 2014 20:08:01 +0100, Mads Kiilerich wrote:
> >>> On 02/10/2014 06:02 PM, Simon Heimberg wrote:
> >>>> I would recommend to the user to use the kill command that the system
> >>>> provides. (`kill PID` on linux, `taskkill /pid PID` or the task
> >>>> manager on windows, ...)
> >>> Sure - if taskkill works and is reliable now. I guess few users are
> >>> aware of taskkill. It should probably be mentioned in hg help serve -
> >>> together with kill for unix-ish systems.
> >>> Still, it would also be nice to have a cross platform way to terminate
> >>> the daemon we started. Something that not only sent the signal, but also
> >>> waited for the process to actually terminate...
> >> IIRC, Windows has equivalent for `kill -KILL`, but not for `kill -SIGINT`.
> >> `GenerateConsoleCtrlEvent(CTRL_C_EVENT)` only works if receiver processes
> >> shares the same console.
> >> http://msdn.microsoft.com/en-us/library/windows/desktop/ms683155(v=vs.85)
> >> .aspx
> >> It seems `taskkill` sends WM_CLOSE message if `/F` option isn't specified,
> >> but hg has no message loop.
> > I'm playing around with handling the return value of
> > kernel32.TerminateProcess and with
> > kernel32.WaitForSingleObject(processHandle, timeout). But it's not yet
> > ready.
I guess `taskkill /F` will do TerminateProcess.
> It's nice that you are working on this.
> Perhaps you will find some old remarks helpful:
> In particular the ones from Matt there.
Thanks for the pointer.
OT: I'm trying to terminate command server cleanly by using named pipe
or window message. It's a real pain on Windows.
More information about the Mercurial-devel