summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gettime.c44
1 files changed, 19 insertions, 25 deletions
diff --git a/lib/gettime.c b/lib/gettime.c
index 715d1916a..929dece31 100644
--- a/lib/gettime.c
+++ b/lib/gettime.c
@@ -1,5 +1,5 @@
/* gettime -- get the system clock
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 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
@@ -23,37 +23,31 @@
#include "timespec.h"
-/* Get the system time. */
+/* Get the system time into *TS. */
-int
+void
gettime (struct timespec *ts)
{
-#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
+#if HAVE_NANOTIME
+ nanotime (ts);
+#else
+
+# if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
if (clock_gettime (CLOCK_REALTIME, ts) == 0)
- return 0;
-#endif
+ return;
+# endif
-#if HAVE_GETTIMEOFDAY
+# if HAVE_GETTIMEOFDAY
{
struct timeval tv;
- if (gettimeofday (&tv, 0) == 0)
- {
- ts->tv_sec = tv.tv_sec;
- ts->tv_nsec = tv.tv_usec * 1000;
- return 0;
- }
+ gettimeofday (&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
}
-#endif
+# else
+ ts->tv_sec = time (NULL);
+ ts->tv_nsec = 0;
+# endif
- {
- time_t t = time (0);
- if (t != (time_t) -1)
- {
- ts->tv_sec = t;
- ts->tv_nsec = 0;
- return 0;
- }
- }
-
- return -1;
+#endif
}