summaryrefslogtreecommitdiff
path: root/src/libstddjb
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-09-06 09:37:56 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-09-06 09:37:56 +0000
commit48e06b650a393ca6fc0b65bd601d67904dd669e8 (patch)
tree885b3f61086835949560c9e0c7568c50c4ec6cea /src/libstddjb
parent07db6986589d42e2dcb5b1e91c57da9ec990bc4e (diff)
downloadskalibs-48e06b650a393ca6fc0b65bd601d67904dd669e8.tar.xz
Change tain_now_set_* API: also give an initial value
Diffstat (limited to 'src/libstddjb')
-rw-r--r--src/libstddjb/tain_now_set_stopwatch.c13
-rw-r--r--src/libstddjb/tain_now_set_wallclock.c3
-rw-r--r--src/libstddjb/tain_stopwatch.c13
3 files changed, 17 insertions, 12 deletions
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 <skalibs/tai.h>
-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 <time.h>
-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 <errno.h>
-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) ;