From 88ff4759acdc413c96b038036823ac6dc677c667 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 10 Apr 2003 16:46:27 +0000 Subject: Update. 2003-04-10 Ulrich Drepper * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks in child. --- nptl/sysdeps/unix/sysv/linux/fork.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'nptl/sysdeps/unix/sysv/linux/fork.c') diff --git a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c index cbe9ccbe1b..94d8995205 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 (); -- cgit 1.4.1