[PATCH 1 of 2] win32: spawndetached returns pid of detached process and not of cmd.exe

Yuya Nishihara 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:
> 
>   http://markmail.org/message/gbyni4dlxpjxqrtw
> 
> 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.

Regards,


More information about the Mercurial-devel mailing list