summaryrefslogtreecommitdiff
path: root/lib/gethrxtime.h
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2005-02-26 08:18:27 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2005-02-26 08:18:27 +0000
commit10ce26c08f4e8ffe6ac636b1fec6a33a847b0d3a (patch)
treea62cb33af6e62da2f4294efb9ac6882fdaaaaa11 /lib/gethrxtime.h
parente8cddd652b70864dafe0698c310611f7a6a67e30 (diff)
downloadgnulib-10ce26c08f4e8ffe6ac636b1fec6a33a847b0d3a.tar.gz
* modules/gethrxtime: New file.
* modules/xnanosleep (Files): Add m4/xnanosleep.m4. (Depends-on): Add gethrxtime. (configure.ac): Add gl_XNANOSLEEP. (Makefile.am): Remove lib_SOURCES line. * lib/gethrxtime.h, lib/gethrxtime.c, lib/xtime.h: New files. * lib/timespec.h (gettime): Return void, since it always succeeds now. All uses changed. * lib/gettime.c (gettime) Likewise. [HAVE_NANOTIME]: Prefer nanotime. Assume gettimeofday succeeds, as POSIX requires. Assime time () succeeds, since other code already does. * lib/xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h. (timespec_subtract): Remove. (NANOSLEEP_BUG_WORKAROUND): New constant. (xnanosleep): Use gethrxtime rather than gettime; this simplifies things considerably. Use it only on GNU/Linux hosts, since the workaround shouldn't be needed elsewhere. * m4/gethrxtime.m4, m4/xnanosleep.m4: New files. * m4/gettime.m4 (gl_GETTIME): Check for nanotime.
Diffstat (limited to 'lib/gethrxtime.h')
-rw-r--r--lib/gethrxtime.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/gethrxtime.h b/lib/gethrxtime.h
new file mode 100644
index 0000000000..2c0e36da7d
--- /dev/null
+++ b/lib/gethrxtime.h
@@ -0,0 +1,37 @@
+/* gethrxtime -- get high resolution real time
+
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Written by Paul Eggert. */
+
+#ifndef GETHRXTIME_H_
+#define GETHRXTIME_H_ 1
+
+#include "xtime.h"
+
+/* Get the current time, as a count of the number of nanoseconds since
+ an arbitrary epoch (e.g., the system boot time). This clock can't
+ be set, is always increasing, and is nearly linear. */
+
+#if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME
+# include <time.h>
+static inline xtime_t gethrxtime (void) { return gethrtime (); }
+#else
+xtime_t gethrxtime (void);
+#endif
+
+#endif