From 4f6f0a8fcff3219a19e860f0c4037d9e5646042c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 3 Mar 2003 22:02:13 +0000 Subject: Update. 2003-03-03 Ulrich Drepper * include/sched.h (__clone2): Use ... instead of adding all the new parameters. --- nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c | 8 ++++---- nptl/sysdeps/unix/sysv/linux/register-atfork.c | 8 +++++++- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'nptl/sysdeps') diff --git a/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c b/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c index fdda78bc20..06cca367b3 100644 --- a/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c +++ b/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -27,7 +27,7 @@ #include -static struct fork_handler pthread_child_handler; +struct fork_handler __pthread_child_handler attribute_hidden; void @@ -40,10 +40,10 @@ __libc_pthread_init (ptr, reclaim, functions) __fork_generation_pointer = ptr; /* Called by a child after fork. */ - pthread_child_handler.handler = reclaim; + __pthread_child_handler.handler = reclaim; /* The fork handler needed by libpthread. */ - list_add_tail (&pthread_child_handler.list, &__fork_child_list); + list_add_tail (&__pthread_child_handler.list, &__fork_child_list); #ifdef SHARED /* We copy the content of the variable pointed to by the FUNCTIONS diff --git a/nptl/sysdeps/unix/sysv/linux/register-atfork.c b/nptl/sysdeps/unix/sysv/linux/register-atfork.c index 7047d6a72a..2f63c781ab 100644 --- a/nptl/sysdeps/unix/sysv/linux/register-atfork.c +++ b/nptl/sysdeps/unix/sysv/linux/register-atfork.c @@ -22,6 +22,10 @@ #include "fork.h" +/* Defined in libc_pthread_init.c. */ +extern struct fork_handler __pthread_child_handler attribute_hidden; + + int __register_atfork (prepare, parent, child, dso_handle) void (*prepare) (void); @@ -114,7 +118,9 @@ libc_freeres_fn (free_mem) { list_del (runp); - free (list_entry (runp, struct fork_handler, list)); + void *p = list_entry (runp, struct fork_handler, list); + if (p != (void *) &__pthread_child_handler) + free (p); } /* Release the lock. */ -- cgit v1.2.3