diff lib/gethrxtime.c @ 17176:fe213f3f2c57

gethrxtime: better 'inline' * lib/xtime.c: New file. * lib/gethrxtime.c, lib/gethrxtime.h (GETHRXTIME_INLINE): * lib/xtime.h (XTIME_INCLUDE): New macros. Replace all uses of 'static inline' with them. * lib/gethrxtime.c (gethrxtime): Define only if ! (HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME), since this source file is now always compiled, because of the extern inline. * lib/gethrxtime.h, lib/xtime.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/gethrxtime.m4 (gl_GETHRXTIME): Do not check for clock macros if gethrtime works, as they're not needed in that case. (gl_XTIME): Do not require AC_C_INLINE. (gl_PREREQ_GETHRXTIME): Remove; all uses removed, as it's always compiled now. Move the check into gl_GETHRXTIME. * modules/gethrxtime (Files, lib_SOURCES): Add lib/xtime.c. (Depends-on): Add extern-inline. (configure.ac): gethrxtime is always compiled now. (lib_SOURCES): Add gethrxtime.c.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 20 Nov 2012 22:25:07 -0800
parents 8250f2777afc
children e542fd46ad6f
line wrap: on
line diff
--- a/lib/gethrxtime.c
+++ b/lib/gethrxtime.c
@@ -19,8 +19,11 @@
 
 #include <config.h>
 
+#define GETHRXTIME_INLINE _GL_EXTERN_INLINE
 #include "gethrxtime.h"
 
+#if ! (HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME)
+
 #include <sys/time.h>
 #include "timespec.h"
 
@@ -32,30 +35,30 @@
 xtime_t
 gethrxtime (void)
 {
-#if HAVE_NANOUPTIME
+# if HAVE_NANOUPTIME
   {
     struct timespec ts;
     nanouptime (&ts);
     return xtime_make (ts.tv_sec, ts.tv_nsec);
   }
-#else
+# else
 
-# if defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME
+#  if defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME
   {
     struct timespec ts;
     if (clock_gettime (CLOCK_MONOTONIC, &ts) == 0)
       return xtime_make (ts.tv_sec, ts.tv_nsec);
   }
-# endif
+#  endif
 
-# if HAVE_MICROUPTIME
+#  if HAVE_MICROUPTIME
   {
     struct timeval tv;
     microuptime (&tv);
     return xtime_make (tv.tv_sec, 1000 * tv.tv_usec);
   }
 
-# else
+#  else
   /* No monotonically increasing clocks are available; fall back on a
      clock that might jump backwards, since it's the best we can do.  */
   {
@@ -63,6 +66,8 @@
     gettime (&ts);
     return xtime_make (ts.tv_sec, ts.tv_nsec);
   }
+#  endif
 # endif
+}
+
 #endif
-}