diff options
Diffstat (limited to 'src/core/timer.cc')
-rw-r--r-- | src/core/timer.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/core/timer.cc b/src/core/timer.cc index e5a808e..b614af1 100644 --- a/src/core/timer.cc +++ b/src/core/timer.cc @@ -8,6 +8,7 @@ #include <unistd.h> #include <iostream> +#include <cmath> namespace core { @@ -26,7 +27,7 @@ void Timer::mark() gettimeofday(&timer_tick, &timer_tz); } -float Timer::elapsed() +unsigned long Timer::timestamp() { struct timeval tick; struct timezone tick_tz; @@ -34,8 +35,15 @@ float Timer::elapsed() gettimeofday(&tick, &tick_tz); // calculate elapsed time in 10^-6 seconds - long delta = (tick.tv_sec - timer_tick.tv_sec) * 1000000 + (tick.tv_usec - timer_tick.tv_usec); - return( (float) delta / 1000000.0f); + unsigned long delta = 0; + delta = tick.tv_sec * 1000 + tick.tv_usec / 1000; + delta -= timer_tick.tv_sec * 1000 + timer_tick.tv_usec / 1000; + return delta; +} + +float Timer::elapsed() +{ + return ((float) timestamp() / 1000.0f); } } |