From 88ff4759acdc413c96b038036823ac6dc677c667 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 10 Apr 2003 16:46:27 +0000 Subject: [PATCH] Update. 2003-04-10 Ulrich Drepper * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks in child. --- nptl/ChangeLog | 5 +++++ nptl/sysdeps/unix/sysv/linux/fork.c | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 112c832..ebb5720 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 cbe9ccb..94d8995 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 (); -- 2.7.4