Mercurial > hg > octave-jordi > gnulib-hg
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 -}