From 69933c5b521eacd968c4d78ad769ea7a3d6b872f Mon Sep 17 00:00:00 2001 From: Gediminas Jakutis Date: Thu, 24 Oct 2019 14:20:49 +0300 Subject: diagnostic: print time since program start instead. Signed-off-by: Gediminas Jakutis --- src/diagnostic/diagnostic.c | 28 ++++++++++++++++------------ src/diagnostic/diagnostic_private.h | 1 - 2 files changed, 16 insertions(+), 13 deletions(-) (limited to 'src/diagnostic') diff --git a/src/diagnostic/diagnostic.c b/src/diagnostic/diagnostic.c index 4d67573..4c4a993 100644 --- a/src/diagnostic/diagnostic.c +++ b/src/diagnostic/diagnostic.c @@ -23,16 +23,29 @@ #include #include #include "rin/diagnostic.h" +#include "rin/time.h" #include "rin/definitions.h" static struct iostate { + struct timespec start; FILE *err; FILE *warn; FILE *fixme; FILE *info; unsigned int flags; char pidconv[8]; -} state = {NULL, NULL, NULL, NULL, RIN_DIAG_PREFIX, "%08x:"}; +} state = {{0, 0}, NULL, NULL, NULL, NULL, RIN_DIAG_PREFIX, "%08x:"}; + +void rin_diag_init(void) +{ + static const char convstr[8] = "%04hx:"; + + if (sizeof(pid_t) == 4) { + memcpy(state.pidconv, convstr, sizeof(convstr)); + } + + clock_gettime(RIN_CLOCK_WALL_COUNTER, &state.start); +} int rin_diag_flags(int flag, int action) { @@ -102,8 +115,6 @@ void rin_info(const char *format, ...) static void __rin_msg(FILE *stream, const char *prefix, const char *format, va_list args) { - rin_once(__rin_pidconvadjust()); - if (state.flags & RIN_DIAG_PREFIX) { fprintf(stream, "%s:", prefix); } @@ -114,18 +125,11 @@ static void __rin_msg(FILE *stream, const char *prefix, const char *format, va_l if (state.flags & RIN_DIAG_TIME) { struct timespec t; - clock_gettime(CLOCK_REALTIME, &t); + clock_gettime(RIN_CLOCK_WALL_COUNTER, &t); + t = rin_time_sub(&t, &state.start); fprintf(stream, "%lu.%lu:", t.tv_sec, t.tv_nsec); } vfprintf(stream, format, args); fputc('\n', stream); } - -static void __rin_pidconvadjust(void) -{ - if (sizeof(pid_t) == 4) { - const char convstr[8] = "%04hx:"; - memcpy(state.pidconv, convstr, sizeof(convstr)); - } -} diff --git a/src/diagnostic/diagnostic_private.h b/src/diagnostic/diagnostic_private.h index 96b1759..981bbe9 100644 --- a/src/diagnostic/diagnostic_private.h +++ b/src/diagnostic/diagnostic_private.h @@ -29,6 +29,5 @@ #include "rin/compat.h" static void __rin_msg(FILE *stream, const char *prefix, const char *format, va_list args); -static void __rin_pidconvadjust(void); #endif /* LIBRIN_DIAGNOSTIC_PRIVATE_INCLUDED */ -- cgit v1.2.3