diff options
Diffstat (limited to 'gi/pyp-topics/src/timing.h')
-rw-r--r-- | gi/pyp-topics/src/timing.h | 31 |
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 |