diff options
Diffstat (limited to 'src/helper/time_support.c')
-rw-r--r-- | src/helper/time_support.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/helper/time_support.c b/src/helper/time_support.c index 620c9c48..fffc5379 100644 --- a/src/helper/time_support.c +++ b/src/helper/time_support.c @@ -22,6 +22,7 @@ #endif #include "time_support.h" +#include "log.h" #include <sys/time.h> #include <time.h> @@ -82,3 +83,26 @@ int timeval_add_time(struct timeval *result, int sec, int usec) return 0; } +int duration_start_measure(duration_t *duration) +{ + gettimeofday(&duration->start, NULL); + + return ERROR_OK; +} + +int duration_stop_measure(duration_t *duration, char **text) +{ + struct timeval end; + + gettimeofday(&end, NULL); + + timeval_subtract(&duration->duration, &end, &duration->start); + + if (text) + { + *text = malloc(16); + snprintf(*text, 16, "%is %ius", duration->duration.tv_sec, duration->duration.tv_usec); + } + + return ERROR_OK; +} |