]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Mon, 8 Aug 2016 00:41:48 +0000 (20:41 -0400)
committerCristy <urban-warrior@imagemagick.org>
Mon, 8 Aug 2016 00:41:48 +0000 (20:41 -0400)
MagickCore/timer.c

index 7ba351f55dd34a26288502403f5f31c1f236ae79..27819dace9c7360153d49481d1912aa1c932a0b1 100644 (file)
@@ -188,7 +188,26 @@ MagickExport TimerInfo *DestroyTimerInfo(TimerInfo *timer_info)
 */
 static double ElapsedTime(void)
 {
-#if defined(MAGICKCORE_HAVE_TIMES) && defined(MAGICKCORE_HAVE_SYSCONF)
+#if defined(HAVE_CLOCK_GETTIME)
+#define NANOSECONDS_PER_SECOND  1000000000.0
+#if defined(CLOCK_HIGHRES)
+#  define CLOCK_ID CLOCK_HIGHRES
+#elif defined(CLOCK_MONOTONIC_RAW)
+#  define CLOCK_ID CLOCK_MONOTONIC_RAW
+#elif defined(CLOCK_MONOTONIC_PRECISE)
+#  define CLOCK_ID CLOCK_MONOTONIC_PRECISE
+#elif defined(CLOCK_MONOTONIC)
+#  define CLOCK_ID CLOCK_MONOTONIC
+#else
+#  define CLOCK_ID CLOCK_REALTIME
+#endif
+
+  struct timespec 
+    timer;
+
+  (void) clock_gettime(CLOCK_ID,&timer);
+  return((double) timer.tv_sec+timer.tv_nsec/NANOSECONDS_PER_SECOND);
+#elif defined(MAGICKCORE_HAVE_TIMES) && defined(MAGICKCORE_HAVE_SYSCONF)
   struct tms
     timer;