summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-09-03 18:07:28 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-09-03 18:07:28 +0000
commite69717d9e0cd107f461abff85f255be82d7bd69b (patch)
treea1158470fe0ea9afea4fb95e974464ac61fe058e /src/include
parent2aa26bce30a3a1d46979a011d85928dda927932c (diff)
downloadskalibs-e69717d9e0cd107f461abff85f255be82d7bd69b.tar.xz
Big wallclock/stopwatch refactor. It was long overdue.
* --enable-clock and --enable-monotonic are gone * tain_sysclock() has been renamed tain_wallclock_read() * tain_wallclock_read() reads from CLOCK_REALTIME (or gettimeofday()) * tain_clockmon[_init]() have been renamed to tain_stopwatch_[read|init]() and now accept a monotonic clock name as an extra argument * tain_now() points to the system (wall) clock by default * tain_now_set_[stopwatch|wallclock]() can be used to switch Now to make a pass on all skarnet.org programs and add a tain_now_set_stopwatch() call everywhere needed... >.>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/skalibs/tai.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/include/skalibs/tai.h b/src/include/skalibs/tai.h
index f3699ce..2bdf524 100644
--- a/src/include/skalibs/tai.h
+++ b/src/include/skalibs/tai.h
@@ -86,19 +86,24 @@ extern int timespec_from_tain_relative (struct timespec *, tain_t const *) ;
extern int timespec_from_tain (struct timespec *, tain_t const *) ;
extern int timespec_sysclock_from_tain (struct timespec *, tain_t const *) ;
-extern int sysclock_get (tain_t *) ;
-extern int tain_sysclock (tain_t *) ;
+typedef int tain_clockread_func_t (tain_t *) ;
+typedef tain_clockread_func_t *tain_clockread_func_t_ref ;
+
extern int tain_from_sysclock (tain_t *, tain_t const *) ;
extern int sysclock_from_tain (tain_t *, tain_t const *) ;
-#define tain_sysclock_g() tain_sysclock(&STAMP)
-extern int tain_clockmon_init (tain_t *) ;
-extern int tain_clockmon (tain_t *, tain_t const *) ;
-#define tain_clockmon_g(offset) tain_clockmon(&STAMP, (offset))
-extern int tain_init (void) ;
-extern int tain_now (tain_t *) ;
-#define tain_now_g() tain_now(&STAMP)
+extern tain_clockread_func_t sysclock_get ;
+extern tain_clockread_func_t tain_wallclock_read ;
+#define tain_wallclock_read_g() tain_wallclock_read(&STAMP)
+extern int tain_stopwatch_init (clock_t, tain_t *) ;
+extern int tain_stopwatch_read (tain_t *, clock_t, tain_t const *) ;
+#define tain_stopwatch_read_g(cl, offset) tain_stopwatch_read(&STAMP, (cl), offset)
+extern tain_clockread_func_t_ref tain_now ;
+#define tain_now_g() (*tain_now)(&STAMP)
#define tain_copynow(t) (*(t) = STAMP)
+extern void tain_now_set_wallclock (void) ;
+extern void tain_now_set_stopwatch (void) ;
+
extern int sysclock_set (tain_t const *) ;
extern int tain_setnow (tain_t const *) ;