Jeff King schrieb: > On Fri, Jan 09, 2009 at 11:09:08AM +0100, Johannes Sixt wrote: > >>> Below is a patch that uses the three-process mechanism, and it fixes the >>> problem. _But_ it is not satisfactory for inclusion, because it won't >>> work on MINGW32. Since it is actually splitting git into two processes >>> (one to monitor the pager and one to actually run git), it uses fork. >> We have start_async()/finish_async() to replace a fork() of the sort that >> we have here. > > It looks like start_async is implemented using threads on Windows. Will > that survive an execvp call? Because we don't know at this point whether > we are going to actually run builtin code, or if we will exec an > external. Ah, no, it would not survive. But there's a more serious problem why we cannot use start_async() in its current form: It expects that there is a *function* that produces the output; but here we don't have a function - output is produced by *returning* (from setup_pager). I'll test your other patch (that replaces the execvp in git.c by run_command). -- Hannes -- 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