Re: [PATCH 1/5] Change git_connect() to return a struct child_process instead of a pid_t.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Junio C Hamano <gitster@...>
Cc: Johannes Sixt <johannes.sixt@...>, <git@...>
Date: Monday, October 1, 2007 - 3:23 am

Junio C Hamano schrieb:

I've thought about this issue a bit more.

Letting git_connect() die on error unconditionally is poison for any 
libification efforts. So here's a plan:

1. Let git_connect() return a struct child_process even for the
    non-forking case. This way a return value of NULL can uniquely
    identify a failure.

2. Keep the error checks in the callers (adjust to test for NULL).

3. Change the die() calls to return failure.

4. Note that the int fd[2] parameter to git_connect() is really an
    output: Remove it and use .in and .out of the returned struct
    child_process instead.

And maybe:

5. Reuse somehow the struct child_process that git_proxy_connect()
    already fills in.

Since my patch doesn't do (1), it can't do (2), i.e. keep the error checks - 
they must be removed because no unique failure value exists. So I could 
complete (1) in a new version of this patch, in order to also do (2). What 
is your preference?

-- Hannes

PS: I've postponed the completion of this plan - in favor of the MinGW port 
integration - because it only helps libification.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH 1/5] Change git_connect() to return a struct chil..., Johannes Sixt, (Mon Oct 1, 3:23 am)
[PATCH 0/5, resend] fork/exec removal series, Johannes Sixt, (Wed Oct 3, 4:09 pm)