Subject: Re: [PATCH] connect.c: finish_connect(): allow null pid parameter

From: Junio C Hamano <[email-masked]>
Date: Tue, 12 Sep 2006 21:48:28 -0700

Franck Bui-Huu <[email-masked]> writes:

> git_connect() can return 0 if we use git protocol for example.
> Users of this function don't know and don't care if a process
> had been created or not, and to avoid them to check it before
> calling finish_connect() this patch allows finish_connect() to
> take a null pid. And in that case return 0.
>
> Signed-off-by: Franck Bui-Huu <[email-masked]>
> ---
>
>  Found it when debugging 'git archive --remote=git://...'
>  command. I noticed that this command always exited with 1 as
>  status.

True.  This should affect existing users of finish_connect(), but
existing callers do not check its return value X-<.

I think the return type of git_connect() should be changed to
pid_t with a warning that says it returns negative on error, pid
of a process finish_connect() should wait for if the underlying
protocol driver forks, and 0 if we do not have to wait in
finish_connect().  Making finish_connect() to accept 0 as its
input is probably a good change.