[libdispatch-changes] [47] trunk

source_changes at macosforge.org source_changes at macosforge.org
Sat Oct 3 06:14:31 PDT 2009


Revision: 47
          http://trac.macosforge.org/projects/libdispatch/changeset/47
Author:   robert at fledge.watson.org
Date:     2009-10-03 06:14:28 -0700 (Sat, 03 Oct 2009)
Log Message:
-----------
Check for declarations of CLOCK_UPTIME and CLOCK_MONOTONIC, and when using
clock_gettime() instead of mach_absolute_time() prefer uptime if available.
This is required on Linux, which does not implement CLOCK_UPTIME.

Modified Paths:
--------------
    trunk/configure.ac
    trunk/src/os_shims.h

Modified: trunk/configure.ac
===================================================================
--- trunk/configure.ac	2009-09-26 19:29:18 UTC (rev 46)
+++ trunk/configure.ac	2009-10-03 13:14:28 UTC (rev 47)
@@ -172,6 +172,8 @@
 #
 # Find functions and declarations we care about.
 #
+AC_CHECK_DECLS([CLOCK_UPTIME, CLOCK_MONOTONIC], [], [],
+  [[#include <sys/time.h>]])
 AC_CHECK_DECLS([EVFILT_SESSION, NOTE_NONE, NOTE_REAP, NOTE_SIGNAL], [], [],
   [[#include <sys/event.h>]])
 AC_CHECK_DECLS([VQ_UPDATE, VQ_VERYLOWDISK], [], [], [[#include <sys/mount.h>]])

Modified: trunk/src/os_shims.h
===================================================================
--- trunk/src/os_shims.h	2009-09-26 19:29:18 UTC (rev 46)
+++ trunk/src/os_shims.h	2009-10-03 13:14:28 UTC (rev 47)
@@ -200,7 +200,13 @@
 	struct timespec ts;
 	int ret;
 
+#if HAVE_DECL_CLOCK_UPTIME
 	ret = clock_gettime(CLOCK_UPTIME, &ts);
+#elif HAVE_DECL_CLOCK_MONOTONIC
+	ret = clock_gettime(CLOCK_MONOTONIC, &ts);
+#else
+#error "clock_gettime: no supported absolute time clock"
+#endif
 	dispatch_assume_zero(ret);
 
 	/* XXXRW: Some kind of overflow detection needed? */
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/libdispatch-changes/attachments/20091003/59acba02/attachment.html>


More information about the libdispatch-changes mailing list