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;
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;