diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/clock.c | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 0c1e0f87eb..10fd76beba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1999-02-22 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/clock.c: Don't test return value of + __times [PR libc/990]. + 1999-02-21 David S. Miller <davem@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Fix diff --git a/sysdeps/unix/sysv/linux/clock.c b/sysdeps/unix/sysv/linux/clock.c index 372afdd149..52268c959c 100644 --- a/sysdeps/unix/sysv/linux/clock.c +++ b/sysdeps/unix/sysv/linux/clock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1996, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -27,8 +27,14 @@ clock (void) struct tms buf; long clk_tck = __sysconf (_SC_CLK_TCK); - if (__times (&buf) < 0) - return (clock_t) -1; + /* We don't check for errors here. The only error the kernel + returns is EFAULT if the value cannot be written to the struct we + pass a pointer to. Otherwise the kernel returns an `unsigned + long' value which is the number of jiffies since system start. + But this number can be negative (when read as `long') when the + system is up for some time. Ignoring errors should therefore + have no negative impacts but solve the problem. */ + __times (&buf); return (clk_tck <= CLOCKS_PER_SEC) |