]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
(die): New function.
authorNiels Möller <nisse@lysator.liu.se>
Thu, 10 Feb 2011 19:09:36 +0000 (20:09 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Thu, 10 Feb 2011 19:09:36 +0000 (20:09 +0100)
(TIME_END, TIME_START): Check return value from clock_gettime.

Rev: nettle/examples/nettle-benchmark.c:1.18

examples/nettle-benchmark.c

index 567c14a1ec55c01b022f68b8b7aa333ac8539a3d..49470045165b693f809726d17855ed18b1f8a756 100644 (file)
@@ -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