+2011-09-06 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Don't use
+ gettimeofday vsyscall, just use time.
+
2011-09-06 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/gettimeofday.c [!SHARED]: Include
#include <not-cancel.h>
#include <kernel-features.h>
-#ifndef HAVE_CLOCK_GETTIME_VSYSCALL
-# undef INTERNAL_VSYSCALL
-# define INTERNAL_VSYSCALL INTERNAL_SYSCALL
-# undef INLINE_VSYSCALL
-# define INLINE_VSYSCALL INLINE_SYSCALL
-#else
-# include <bits/libc-vdso.h>
-#endif
-
/* How we can determine the number of available processors depends on
the configuration. There is currently (as of version 2.0.21) no
static int cached_result;
static time_t timestamp;
-#ifdef __ASSUME_POSIX_TIMERS
- struct timespec ts;
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts);
-#else
- struct timeval ts;
- __gettimeofday (&ts, NULL);
-#endif
+ time_t now = time (NULL);
time_t prev = timestamp;
atomic_read_barrier ();
- if (ts.tv_sec == prev)
+ if (now == prev)
return cached_result;
/* XXX Here will come a test for the new system call. */
out:
cached_result = result;
atomic_write_barrier ();
- timestamp = ts.tv_sec;
+ timestamp = now;
return result;
}