From d50bb01ad9f42444a6c75002771b0beec401a75f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Thu, 10 Feb 2011 20:09:36 +0100 Subject: [PATCH] (die): New function. (TIME_END, TIME_START): Check return value from clock_gettime. Rev: nettle/examples/nettle-benchmark.c:1.18 --- examples/nettle-benchmark.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/examples/nettle-benchmark.c b/examples/nettle-benchmark.c index 567c14a1..49470045 100644 --- a/examples/nettle-benchmark.c +++ b/examples/nettle-benchmark.c @@ -31,6 +31,7 @@ #include <assert.h> #include <errno.h> #include <math.h> +#include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -94,16 +95,31 @@ static double frequency = 0.0; #define BENCH_ITERATIONS 10 #endif +static void +die(const char *format, ...) +{ + va_list args; + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + + exit(EXIT_FAILURE); +} + static double overhead = 0.0; #if HAVE_CLOCK_GETTIME && defined CLOCK_PROCESS_CPUTIME_ID #define TIME_TYPE struct timespec -#define TIME_START(start) clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &(start)) -#define TIME_END(elapsed, start) do { \ - struct timespec _time_end_after; \ - clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &_time_end_after); \ - (elapsed) = _time_end_after.tv_sec - (start).tv_sec \ - + 1e-9 * (_time_end_after.tv_nsec - (start).tv_nsec); \ +#define TIME_START(start) do { \ + if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &(start)) < 0) \ + die("clock_gettime failed: %s\n", strerror(errno)); \ + } while (0) +#define TIME_END(elapsed, start) do { \ + struct timespec _time_end_after; \ + if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &_time_end_after) < 0) \ + die("clock_gettime failed: %s\n", strerror(errno)); \ + (elapsed) = _time_end_after.tv_sec - (start).tv_sec \ + + 1e-9 * (_time_end_after.tv_nsec - (start).tv_nsec); \ } while (0) #else /* !HAVE_CLOCK_GETTIME */ #define TIME_TYPE clock_t -- GitLab