diff options
author | Geoff Levand <geoffrey.levand@am.sony.com> | 2009-01-21 16:26:58 -0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2009-02-01 11:53:55 +1100 |
commit | 73df817d55376240d17ced8c2b6d89c4f17c4a63 (patch) | |
tree | b3f9cc8961ff4f33ba3fcac6259e0d72498b64c7 /lib | |
parent | 35cc5798268f4fce3291748406211bb149a57571 (diff) | |
download | talos-petitboot-73df817d55376240d17ced8c2b6d89c4f17c4a63.tar.gz talos-petitboot-73df817d55376240d17ced8c2b6d89c4f17c4a63.zip |
Flush log stream on write
Flush the pb_log stream when the stream is changed, and add an
option to flush the pb_log stream on every write. Useful while
debugging.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/log/log.c | 10 | ||||
-rw-r--r-- | lib/log/log.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/log/log.c b/lib/log/log.c index e006fd0..41b44cc 100644 --- a/lib/log/log.c +++ b/lib/log/log.c @@ -4,6 +4,7 @@ #include "log.h" static FILE *logf; +static int always_flush; void pb_log(const char *fmt, ...) { @@ -15,9 +16,18 @@ void pb_log(const char *fmt, ...) va_start(ap, fmt); vfprintf(stream, fmt, ap); va_end(ap); + + if (always_flush) + fflush(stream); } void pb_log_set_stream(FILE *stream) { + fflush(logf ? logf : stdout); logf = stream; } + +void pb_log_always_flush(int state) +{ + always_flush = state; +} diff --git a/lib/log/log.h b/lib/log/log.h index 3e92555..813a19e 100644 --- a/lib/log/log.h +++ b/lib/log/log.h @@ -5,5 +5,6 @@ void pb_log(const char *fmt, ...); void pb_log_set_stream(FILE *stream); +void pb_log_always_flush(int state); #endif /* _LOG_H */ |