Add output flushing before fork()
This adds fflush(NULL) before fork() in start_command(), to keep the generic interface safe. A remaining use of fork() with no flushing is in a comment in show_tree(). Rewrite that comment to use start_command(). Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
611921654f
commit
7d0b18a4da
@ -66,17 +66,16 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen,
|
||||
/*
|
||||
* Maybe we want to have some recursive version here?
|
||||
*
|
||||
* Something like:
|
||||
* Something similar to this incomplete example:
|
||||
*
|
||||
if (show_subprojects(base, baselen, pathname)) {
|
||||
if (fork()) {
|
||||
chdir(base);
|
||||
exec ls-tree;
|
||||
}
|
||||
waitpid();
|
||||
struct child_process ls_tree;
|
||||
|
||||
ls_tree.dir = base;
|
||||
ls_tree.argv = ls-tree;
|
||||
start_command(&ls_tree);
|
||||
}
|
||||
*
|
||||
* ..or similar..
|
||||
*/
|
||||
type = commit_type;
|
||||
} else if (S_ISDIR(mode)) {
|
||||
|
@ -68,6 +68,7 @@ int start_command(struct child_process *cmd)
|
||||
trace_argv_printf(cmd->argv, "trace: run_command:");
|
||||
|
||||
#ifndef __MINGW32__
|
||||
fflush(NULL);
|
||||
cmd->pid = fork();
|
||||
if (!cmd->pid) {
|
||||
if (cmd->no_stdin)
|
||||
|
Loading…
Reference in New Issue
Block a user