daemon: use full buffered mode for stderr
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>
This commit is contained in:
parent
30e1560230
commit
48cfaea108
6
daemon.c
6
daemon.c
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user