Skip to content

Commit

Permalink
daemon: use full buffered mode for stderr
Browse files Browse the repository at this point in the history
Windows doesn't support line buffered mode for file
streams, so let's just use full buffered mode with
a big buffer ("4096 should be enough for everyone")
and add explicit flushing.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Erik Faye-Lund authored and Junio C Hamano committed Nov 4, 2010
1 parent 30e1560 commit 48cfaea
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions daemon.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,14 @@ static void logreport(int priority, const char *err, va_list params)
syslog(priority, "%s", buf);
} else {
/*
* Since stderr is set to linebuffered mode, the
* Since stderr is set to buffered mode, the
* logging of different processes will not overlap
* unless they overflow the (rather big) buffers.
*/
fprintf(stderr, "[%"PRIuMAX"] ", (uintmax_t)getpid());
vfprintf(stderr, err, params);
fputc('\n', stderr);
fflush(stderr);
}
}

Expand Down Expand Up @@ -1117,7 +1119,7 @@ int main(int argc, char **argv)
set_die_routine(daemon_die);
} else
/* avoid splitting a message in the middle */
setvbuf(stderr, NULL, _IOLBF, 0);
setvbuf(stderr, NULL, _IOFBF, 4096);

if (inetd_mode && (group_name || user_name))
die("--user and --group are incompatible with --inetd");
Expand Down

0 comments on commit 48cfaea

Please sign in to comment.