On Tuesday 31 July 2012 15:43:57 Jonathan Nieder wrote: > Florian Achleitner wrote: > > I haven't tried that yet, nor do I remember anything where I've already > > seen two processes writing to the same pipe. > > It's a perfectly normal and well supported thing to do. I played around with a little testprogram. It generally works. I'm still not convinced that this doesn't cause more problems than it can solve. The standard defines that write calls to pipe fds are atomic, i.e. data is not interleaved with data from other processes, if the data is less than PIPE_BUF [1]. We would need some kind of locking/synchronization to make it work for sure, while I believe it will work most of the time. Currently it runs like this: transport-helper.c writes one or more 'import <ref>' lines, we don't know in advance how many and how long they are. Then it waits for fast-import to finish. When the first line arrives at the remote-helper, it starts importing one line at a time, leaving the remaining lines in the pipe. For importing it requires the data from fast-import, which would be mixed with import lines or queued at the end of them. [1] http://pubs.opengroup.org/onlinepubs/009695399/functions/write.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html