+#if HAVE_CLOCK_GETTIME
+static double dtime(void) /* {{{ */
+{
+ struct timespec ts = {0};
+
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
+ perror("clock_gettime");
+
+ return (double)ts.tv_sec + (double)ts.tv_nsec / 1e9;
+} /* }}} double dtime */
+#else
+/* Work around for Mac OS X which doesn't have clock_gettime(2). *sigh* */
+static double dtime(void) /* {{{ */
+{
+ struct timeval tv = {0};
+
+ if (gettimeofday(&tv, /* timezone = */ NULL) != 0)
+ perror("gettimeofday");
+
+ return (double)tv.tv_sec + ((double)tv.tv_usec) / 1e6;
+} /* }}} double dtime */
+#endif
+
+static int compare_time(const void *v0, const void *v1) /* {{{ */