Re: [PATCH] (Updated) Exec git programs without using PATH.
- From
Andreas Ericsson <ae@op5.se>
- Date
- Jan 12, 2006, 00:11 UTC
- Message-ID
- <43C59EC6.6070905@op5.se>
- In-Reply-To
- <7vk6d6qwmn.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
Show 20 quoted lines
> Michal Ostrowski <mostrows@watson.ibm.com> writes: > > >>I briefly tried to consider if I could hide the various fork()+exec() >>sequences behind something like the run_command*() interfaces (which >>would move us down the direction of something "spawn()"-like). I found >>that there's a lot of variation between the various paths in terms of >>what happens between fork() and exec() on the various paths that does >>not lend itself to such consolidation. >> >>I'd love to be convinced otherwise. > > > Unfortunately I am with Michal on this one (both "eh, I do not > think that is feasible" and "I'd love to be..."). > > The run_command*() interfaces and its users were the best I > could come up with as far as such consolidations could go when I > did it. >
Not being entirely knowledgeable on what spawn() actually does and how its semantics differ from fork() and exec*() style API's (Google was depressingly unhelpful and wikipedia dredged up froglings...), I've got a decent "clone-lots-of-processes-and-multiplex-between-them" kind of library lying around. Would it be of any use?
From the prototypes I've seen on spawn it doesn't seem to be much more than a fork() + execve(), either closing or dup2'ing all the file-descriptors, so I don't understand why that couldn't be implemented for git. Some pointers, anyone?
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231