aboutsummaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2007-06-29 13:40:46 -0400
committerJunio C Hamano <gitster@pobox.com>2007-06-30 20:16:12 -0700
commit06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a (patch)
tree589caae1830bf51eb10f1022cdb0a8f5fa97ba07 /cache.h
parentee36856d8c8c1f8d53650a70d8f61561fb65ba38 (diff)
downloadgit-06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a.tar.gz
git-06f59e9f5daa06fc4bd51cf4c508b3edd3ed514a.tar.xz
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>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/cache.h b/cache.h
index ed83d92c5..0525c4ee5 100644
--- a/cache.h
+++ b/cache.h
@@ -532,6 +532,8 @@ extern char git_default_name[MAX_GITNAME];
extern const char *git_commit_encoding;
extern const char *git_log_output_encoding;
+/* IO helper functions */
+extern void maybe_flush_or_die(FILE *, const char *);
extern int copy_fd(int ifd, int ofd);
extern int read_in_full(int fd, void *buf, size_t count);
extern int write_in_full(int fd, const void *buf, size_t count);