[PATCH 7 of 7] cmdserver: add service that listens on unix domain socket and forks process

Yuya Nishihara yuya at tcha.org
Sun Oct 5 09:06:42 CDT 2014


On Sat, 4 Oct 2014 12:40:03 -0700, Idan Kamara wrote:
> On Sat, Oct 4, 2014 at 3:52 AM, Yuya Nishihara <yuya at tcha.org> wrote:
> > # HG changeset patch
> > # User Yuya Nishihara <yuya at tcha.org>
> > # Date 1412408810 -32400
> > #      Sat Oct 04 16:46:50 2014 +0900
> > # Node ID 9b04af3305559a96ee310e9ba6766de1c4ffa63a
> > # Parent  0368d1677c97ad896468ab123b05760f9e34591a
> > cmdserver: add service that listens on unix domain socket and forks process
> >
> > Typical use case of 'unix' mode is a background hg daemon.
> >
> >     $ hg serve --cmdserver unix --cwd / -a /tmp/hg-`id -u`.sock
> >
> > Unlike 'pipe' mode in which parent process keeps stdio channel, 'unix' server
> > can be detached.  So clients can freely connect and disconnect from server,
> > saving Python start-up time.
> 
> Very nice, happy to see you moving this from chg into core!

Actually this is a complete rewrite. chg had a prefork server that was more
complicated than this patch.

BTW, tip of chg can connect to a server of this patch:

  $ hg serve --cmdserver unix -a /tmp/test.sock
  $ CHGDEBUG=1 CHGSOCKNAME=/tmp/test.sock chg id

> It would be nice one day to also support TCP sockets so we
> have complete platform independence.

TCP has no permission check, so it will need something like .Xauthority.
Another big issue on Windows is fork().

Regards,


More information about the Mercurial-devel mailing list