From: Ulrich Drepper Date: Thu, 10 Apr 2003 16:46:27 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc-2_3_3~923 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=88ff4759acdc413c96b038036823ac6dc677c667;p=thirdparty%2Fglibc.git Update. 2003-04-10 Ulrich Drepper * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks in child. --- diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 112c8325133..ebb5720f040 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2003-04-10 Ulrich Drepper + + * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks + in child. + 2003-04-09 Ulrich Drepper * Makefile (tests): Add tst-detach1. diff --git a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c index cbe9ccbe1bf..94d89952052 100644 --- a/nptl/sysdeps/unix/sysv/linux/fork.c +++ b/nptl/sysdeps/unix/sysv/linux/fork.c @@ -17,6 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include #include #include #include @@ -24,8 +25,9 @@ #include #include #include "fork.h" +#include +#include #include -#include unsigned long int *__fork_generation_pointer; @@ -83,11 +85,21 @@ __libc_fork (void) if (pid == 0) { - assert (THREAD_GETMEM (THREAD_SELF, tid) != ppid); + struct pthread *self = THREAD_SELF; + + assert (THREAD_GETMEM (self, tid) != ppid); if (__fork_generation_pointer != NULL) *__fork_generation_pointer += 4; +#if HP_TIMING_AVAIL + /* The CPU clock of the thread and process have to be set to zero. */ + hp_timing_t now; + HP_TIMING_NOW (now); + THREAD_SETMEM (self, cpuclock_offset, now); + GL(dl_cpuclock_offset) = now; +#endif + /* Reset the file list. These are recursive mutexes. */ fresetlockfiles ();