summaryrefslogtreecommitdiff
path: root/gi/pyp-topics/src/timing.h
diff options
context:
space:
mode:
Diffstat (limited to 'gi/pyp-topics/src/timing.h')
-rw-r--r--gi/pyp-topics/src/timing.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/gi/pyp-topics/src/timing.h b/gi/pyp-topics/src/timing.h
new file mode 100644
index 00000000..7543295c
--- /dev/null
+++ b/gi/pyp-topics/src/timing.h
@@ -0,0 +1,31 @@
+#ifndef TIMING_H
+#define TIMING_H
+
+#ifdef __CYGWIN__
+# ifndef _POSIX_MONOTONIC_CLOCK
+# define _POSIX_MONOTONIC_CLOCK
+# endif
+#endif
+
+#include <time.h>
+#include <sys/time.h>
+#include "clock_gettime_stub.c"
+
+struct Timer {
+ Timer() { Reset(); }
+ void Reset()
+ {
+ clock_gettime(CLOCK_MONOTONIC, &start_t);
+ }
+ double Elapsed() const {
+ timespec end_t;
+ clock_gettime(CLOCK_MONOTONIC, &end_t);
+ const double elapsed = (end_t.tv_sec - start_t.tv_sec)
+ + (end_t.tv_nsec - start_t.tv_nsec) / 1000000000.0;
+ return elapsed;
+ }
+ private:
+ timespec start_t;
+};
+
+#endif