Don't fflush(stdout) when it's not helpful
This patch arose from a discussion started by Jim Meyering's patch whose intention was to provide better diagnostics for failed writes. Linus proposed a better way to do things, which also had the added benefit that adding a fflush() to git-log-* operations and incremental git-blame operations could improve interactive respose time feel, at the cost of making things a bit slower when we aren't piping the output to a downstream program. This patch skips the fflush() calls when stdout is a regular file, or if the environment variable GIT_FLUSH is set to "0". This latter can speed up a command such as: GIT_FLUSH=0 strace -c -f -e write time git-rev-list HEAD | wc -l a tiny amount. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
ee36856d8c
commit
06f59e9f5d
@ -408,5 +408,6 @@ int log_tree_commit(struct rev_info *opt, struct commit *commit)
|
||||
shown = 1;
|
||||
}
|
||||
opt->loginfo = NULL;
|
||||
maybe_flush_or_die(stdout, "stdout");
|
||||
return shown;
|
||||
}
|
||||
|
Reference in New Issue
Block a user