summary refs log tree commit diff
path: root/nptl/pthread_create.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-01-06 21:40:51 +0000
committerUlrich Drepper <drepper@redhat.com>2006-01-06 21:40:51 +0000
commitd804f5df602e6a348edcf7d2a2fe73b185bfbd34 (patch)
tree8f407c4ace97efa8c02c5c079d04f20e49cc1831 /nptl/pthread_create.c
parent74158740ea6bf9acbb63fa7744e56a0aacc5ca9e (diff)
downloadglibc-d804f5df602e6a348edcf7d2a2fe73b185bfbd34.tar.gz
glibc-d804f5df602e6a348edcf7d2a2fe73b185bfbd34.tar.xz
glibc-d804f5df602e6a348edcf7d2a2fe73b185bfbd34.zip
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
	Don't give the union a name because it changes the mangled name.
	Instead name the struct for __data.
	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
	* pthread_create.c (start_thread): Adjust robust mutex free loop.
	* descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
Diffstat (limited to 'nptl/pthread_create.c')
-rw-r--r--nptl/pthread_create.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 2dbe58dcd4..94d424b1f2 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -311,25 +311,25 @@ start_thread (void *arg)
   atomic_bit_set (&pd->cancelhandling, EXITING_BIT);
 
   /* If this thread has any robust mutexes locked, handle them now.  */
-  pthread_mutex_t *robust = THREAD_GETMEM (pd, robust_list);
+  struct __pthread_mutex_s *robust = THREAD_GETMEM (pd, robust_list);
   if (__builtin_expect (robust != NULL, 0))
     {
       do
 	{
-	  pthread_mutex_t *this = robust;
-	  robust = robust->__data.__next;
-
-	  assert (lll_mutex_islocked (this->__data.__lock));
-	  this->__data.__count = 0;
-	  --this->__data.__nusers;
-	  assert (this->__data.__owner != PTHREAD_MUTEX_NOTRECOVERABLE);
-	  this->__data.__owner = PTHREAD_MUTEX_OWNERDEAD;
-	  this->__data.__next = NULL;
+	  struct __pthread_mutex_s *this = robust;
+	  robust = robust->__next;
+
+	  assert (lll_mutex_islocked (this->__lock));
+	  this->__count = 0;
+	  --this->__nusers;
+	  assert (this->__owner != PTHREAD_MUTEX_NOTRECOVERABLE);
+	  this->__owner = PTHREAD_MUTEX_OWNERDEAD;
+	  this->__next = NULL;
 #ifdef __PTHREAD_MUTEX_HAVE_PREV
-	  this->__data.__prev = NULL;
+	  this->__prev = NULL;
 #endif
 
-	  lll_mutex_unlock (this->__data.__lock);
+	  lll_mutex_unlock (this->__lock);
 	}
       while (robust != NULL);