diff options
author | Stefan Weil <weil@mail.berlios.de> | 2010-10-07 18:55:48 +0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-10-09 08:20:39 +0000 |
commit | 6650b7100b58d9f81ae5117d03e89dc97f142897 (patch) | |
tree | ffbc77254bc13c7b12d0b3516340873fbae17dbc | |
parent | ea95f15602234c1ff9c9be176ebe8bba55ee4dab (diff) |
win32: Set unbuffered stdout
Win32 does not support line-buffering, but it allows
unbuffered output.
Unbuffered output is a good approximation. For typical output
statements which usually end with '\n', it's even identical.
Buffered output is unusable for program traces because of
its large delay.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | os-win32.c | 6 | ||||
-rw-r--r-- | qemu-os-win32.h | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/os-win32.c b/os-win32.c index dd46bf459d..3c6f50fa94 100644 --- a/os-win32.c +++ b/os-win32.c @@ -221,6 +221,12 @@ char *os_find_datadir(const char *argv0) return NULL; } +void os_set_line_buffering(void) +{ + setbuf(stdout, NULL); + setbuf(stderr, NULL); +} + /* * Parse OS specific command line options. * return 0 if option handled, -1 otherwise diff --git a/qemu-os-win32.h b/qemu-os-win32.h index 2ff9f45a6c..c63778d2fc 100644 --- a/qemu-os-win32.h +++ b/qemu-os-win32.h @@ -45,8 +45,7 @@ void os_host_main_loop_wait(int *timeout); static inline void os_setup_signal_handling(void) {} static inline void os_daemonize(void) {} static inline void os_setup_post(void) {} -/* Win32 doesn't support line-buffering and requires size >= 2 */ -static inline void os_set_line_buffering(void) {} +void os_set_line_buffering(void); static inline void os_set_proc_name(const char *dummy) {} #if !defined(EPROTONOSUPPORT) |