From 48e06b650a393ca6fc0b65bd601d67904dd669e8 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 6 Sep 2019 09:37:56 +0000 Subject: Change tain_now_set_* API: also give an initial value --- src/libstddjb/tain_now_set_stopwatch.c | 13 ++++++++----- src/libstddjb/tain_now_set_wallclock.c | 3 ++- src/libstddjb/tain_stopwatch.c | 13 +++++++------ 3 files changed, 17 insertions(+), 12 deletions(-) (limited to 'src/libstddjb') diff --git a/src/libstddjb/tain_now_set_stopwatch.c b/src/libstddjb/tain_now_set_stopwatch.c index ef869f7..a770141 100644 --- a/src/libstddjb/tain_now_set_stopwatch.c +++ b/src/libstddjb/tain_now_set_stopwatch.c @@ -17,21 +17,24 @@ static tain_t offset ; -static int tain_now_stopwatch (tain_t *a) +static int tain_now_stopwatch (tain_t *now) { - return tain_stopwatch_read(a, SKALIBS_STOPWATCH, &offset) ; + return tain_stopwatch_read(now, SKALIBS_STOPWATCH, &offset) ; } -void tain_now_set_stopwatch (void) +int tain_now_set_stopwatch (tain_t *now) { - if (!tain_stopwatch_init(SKALIBS_STOPWATCH, &offset)) return ; + if (!tain_stopwatch_init(now, SKALIBS_STOPWATCH, &offset)) + return tain_now_set_wallclock(now) ; tain_now = &tain_now_stopwatch ; + return 1 ; } #else -void tain_now_set_stopwatch (void) +int tain_now_set_stopwatch (tain_t *now) { + return tain_now_set_wallclock(now) ; } #endif diff --git a/src/libstddjb/tain_now_set_wallclock.c b/src/libstddjb/tain_now_set_wallclock.c index a3d8b61..34a44cc 100644 --- a/src/libstddjb/tain_now_set_wallclock.c +++ b/src/libstddjb/tain_now_set_wallclock.c @@ -4,7 +4,8 @@ #include -void tain_now_set_wallclock (void) +int tain_now_set_wallclock (tain_t *now) { tain_now = &tain_wallclock_read ; + return tain_wallclock_read(now) ; } diff --git a/src/libstddjb/tain_stopwatch.c b/src/libstddjb/tain_stopwatch.c index 2bb4974..adcaace 100644 --- a/src/libstddjb/tain_stopwatch.c +++ b/src/libstddjb/tain_stopwatch.c @@ -7,15 +7,15 @@ #include -int tain_stopwatch_init (clock_t cl, tain_t *offset) +int tain_stopwatch_init (tain_t *now, clock_t cl, tain_t *offset) { tain_t a, b ; struct timespec ts ; - if (!tain_wallclock_read(&a)) return 0 ; if (clock_gettime(cl, &ts) < 0) return 0 ; if (!tain_from_timespec(&b, &ts)) return 0 ; - tain_add(&a, &a, &tain_nano500) ; + if (!tain_wallclock_read(&a)) return 0 ; tain_sub(offset, &a, &b) ; + *now = a ; return 1 ; } @@ -32,16 +32,17 @@ int tain_stopwatch_read (tain_t *a, clock_t cl, tain_t const *offset) #include -int tain_stopwatch_init (clock_t cl, tain_t *offset) +int tain_stopwatch_init (tain_t *now, clock_t cl, tain_t *offset) { + (void)now ; (void)cl ; (void)offset ; return (errno = ENOSYS, 0) ; } -int tain_stopwatch_read (tain_t *a, clock_t cl, tain_t const *offset) +int tain_stopwatch_read (tain_t *now, clock_t cl, tain_t const *offset) { - (void)a ; + (void)now ; (void)cl ; (void)offset ; return (errno = ENOSYS, 0) ; -- cgit v1.2.3