[utils] Work around CLOCK_MONOTONIC being defined on macOS 10.12 SDK despite targetin...
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Tue, 14 Jun 2016 14:39:41 +0000 (16:39 +0200)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Tue, 14 Jun 2016 14:39:41 +0000 (16:39 +0200)
Should fix https://bugzilla.xamarin.com/show_bug.cgi?id=41786

mono/utils/mono-time.c

index 5cc82fccb55e082f6ecd6b198f1321eed06eda95..06f9f217b88cf6ce3a51b9fe65182ae38f182995 100644 (file)
@@ -142,7 +142,16 @@ gint64
 mono_100ns_ticks (void)
 {
        struct timeval tv;
-#ifdef CLOCK_MONOTONIC
+#if defined(PLATFORM_MACOSX)
+       /* http://developer.apple.com/library/mac/#qa/qa1398/_index.html */
+       static mach_timebase_info_data_t timebase;
+       guint64 now = mach_absolute_time ();
+       if (timebase.denom == 0) {
+               mach_timebase_info (&timebase);
+               timebase.denom *= 100; /* we return 100ns ticks */
+       }
+       return now * timebase.numer / timebase.denom;
+#elif defined(CLOCK_MONOTONIC)
        struct timespec tspec;
        static struct timespec tspec_freq = {0};
        static int can_use_clock = 0;
@@ -156,16 +165,6 @@ mono_100ns_ticks (void)
                        return ((gint64)tspec.tv_sec * MTICKS_PER_SEC + tspec.tv_nsec / 100);
                }
        }
-       
-#elif defined(PLATFORM_MACOSX)
-       /* http://developer.apple.com/library/mac/#qa/qa1398/_index.html */
-       static mach_timebase_info_data_t timebase;
-       guint64 now = mach_absolute_time ();
-       if (timebase.denom == 0) {
-               mach_timebase_info (&timebase);
-               timebase.denom *= 100; /* we return 100ns ticks */
-       }
-       return now * timebase.numer / timebase.denom;
 #endif
        if (gettimeofday (&tv, NULL) == 0)
                return ((gint64)tv.tv_sec * 1000000 + tv.tv_usec) * 10;