diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-01-06 21:40:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-01-06 21:40:51 +0000 |
commit | d804f5df602e6a348edcf7d2a2fe73b185bfbd34 (patch) | |
tree | 8f407c4ace97efa8c02c5c079d04f20e49cc1831 /nptl/pthread_create.c | |
parent | 74158740ea6bf9acbb63fa7744e56a0aacc5ca9e (diff) | |
download | glibc-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.c | 26 |
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); |