From 0d563783490bf5b2d7d52cab205760fdff5d5650 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 24 Oct 2019 17:52:30 +0000 Subject: Use clock_gettime to implement time. Change the default implementation of time to call clock_gettime, to align with new Linux ports that are expected to only implement __NR_clock_gettime. Arch-specific implementation that either call the time vDSO or route to gettimeofday vDSO are not removed. Also for Linux, CLOCK_REALTIME_COARSE is used instead of generic CLOCK_REALTIME clockid. This takes less CPU time and its behavior better matches what the current glibc does. Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu, powerpc64-linux-gnu, powerpc-linux-gnu, and aarch64-linux-gnu. Co-authored-by: Zack Weinberg Reviewed-by: Lukasz Majewski --- time/time.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'time') diff --git a/time/time.c b/time/time.c index b53a06e29c..e6e5eeff7e 100644 --- a/time/time.c +++ b/time/time.c @@ -15,19 +15,18 @@ License along with the GNU C Library; if not, see . */ -#include #include +#include /* Return the time now, and store it in *TIMER if not NULL. */ time_t time (time_t *timer) { - __set_errno (ENOSYS); + struct timespec ts; + __clock_gettime (TIME_CLOCK_GETTIME_CLOCKID, &ts); - if (timer != NULL) - *timer = (time_t) -1; - return (time_t) -1; + if (timer) + *timer = ts.tv_sec; + return ts.tv_sec; } libc_hidden_def (time) - -stub_warning (time) -- cgit v1.2.1