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>maint
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);
|
syslog(priority, "%s", buf);
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Since stderr is set to linebuffered mode, the
|
* Since stderr is set to buffered mode, the
|
||||||
* logging of different processes will not overlap
|
* logging of different processes will not overlap
|
||||||
|
* unless they overflow the (rather big) buffers.
|
||||||
*/
|
*/
|
||||||
fprintf(stderr, "[%"PRIuMAX"] ", (uintmax_t)getpid());
|
fprintf(stderr, "[%"PRIuMAX"] ", (uintmax_t)getpid());
|
||||||
vfprintf(stderr, err, params);
|
vfprintf(stderr, err, params);
|
||||||
fputc('\n', stderr);
|
fputc('\n', stderr);
|
||||||
|
fflush(stderr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1117,7 +1119,7 @@ int main(int argc, char **argv)
|
||||||
set_die_routine(daemon_die);
|
set_die_routine(daemon_die);
|
||||||
} else
|
} else
|
||||||
/* avoid splitting a message in the middle */
|
/* avoid splitting a message in the middle */
|
||||||
setvbuf(stderr, NULL, _IOLBF, 0);
|
setvbuf(stderr, NULL, _IOFBF, 4096);
|
||||||
|
|
||||||
if (inetd_mode && (group_name || user_name))
|
if (inetd_mode && (group_name || user_name))
|
||||||
die("--user and --group are incompatible with --inetd");
|
die("--user and --group are incompatible with --inetd");
|
||||||
|
|
Loading…
Reference in New Issue