On Thu, Apr 26, 2012 at 11:00:39PM +0200, Johannes Sixt wrote: > The shell function connects the daemon's stderr to its consumers via a > FIFO. We cannot just do this: > > read line <git_daemon_output > cat <git_daemon_output >&4 & > > because after the first redirection the pipe is closed and the daemon > could receive SIGPIPE if it writes at the wrong moment. Therefore, we open > the readable end of the FIFO only once on fd 7 in the shell and dup from > there to the stdin of the two consumers. > > [...] > { > - read line > + read line <&7 > echo >&4 "$line" > - cat >&4 & > + cat <&7 >&4 & > + } 7<git_daemon_output && Argh. I didn't notice your patch yet when I wrote my previous reply, and ended up rediscovering your analysis and the final form of the solution. So please disregard my prior email, and consider this: Acked-by: Jeff King <peff@xxxxxxxx> -Peff -- 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