diff options
author | Andreas Schwab <schwab@redhat.com> | 2009-07-28 09:21:54 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2009-07-28 09:21:54 +0200 |
commit | b14f097d7ef032db746b885ec05b167e54b8fa9c (patch) | |
tree | ec0cb2d8a2de784ed9d709ecdf9cc82dd1815fe1 /nptl | |
parent | e1214916e74fa6aa7984cb78e68c38d49e5834a6 (diff) | |
parent | e73e694e38b7b222eec3ec5897eb507d88bb8928 (diff) | |
download | glibc-b14f097d7ef032db746b885ec05b167e54b8fa9c.tar glibc-b14f097d7ef032db746b885ec05b167e54b8fa9c.tar.gz glibc-b14f097d7ef032db746b885ec05b167e54b8fa9c.tar.bz2 glibc-b14f097d7ef032db746b885ec05b167e54b8fa9c.zip |
Merge commit 'origin/master' into fedora/master
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 7 | ||||
-rw-r--r-- | nptl/pthread_mutex_lock.c | 12 | ||||
-rw-r--r-- | nptl/pthread_mutex_timedlock.c | 12 | ||||
-rw-r--r-- | nptl/pthread_mutex_unlock.c | 6 |
4 files changed, 18 insertions, 19 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index c485435e82..e5fc474916 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,9 +1,8 @@ -2009-07-26 Ulrich Drepper <drepper@redhat.com> +2009-07-27 Ulrich Drepper <drepper@redhat.com> [BZ #10418] - * pthread_mutex_lock.c (pthread_mutex_lock): Use _rel instead of of - _acq variants of cmpxchg. - * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise. + * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Use _rel + instead of of _acq variants of cmpxchg. 2009-07-23 Ulrich Drepper <drepper@redhat.com> diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c index a0ff881faf..406e588fdb 100644 --- a/nptl/pthread_mutex_lock.c +++ b/nptl/pthread_mutex_lock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2007, 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -160,7 +160,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) #endif newval - = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, newval, oldval); if (newval != oldval) @@ -285,7 +285,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) #ifdef NO_INCR newval |= FUTEX_WAITERS; #endif - oldval = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, newval, 0); if (oldval != 0) @@ -420,7 +420,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) oldprio = ceiling; oldval - = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, #ifdef NO_INCR ceilval | 2, #else @@ -434,7 +434,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) do { oldval - = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, ceilval | 2, ceilval | 1); @@ -445,7 +445,7 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) lll_futex_wait (&mutex->__data.__lock, ceilval | 2, PTHREAD_MUTEX_PSHARED (mutex)); } - while (atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, ceilval | 2, ceilval) != ceilval); } diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c index 2c6ff114da..8d0db79d58 100644 --- a/nptl/pthread_mutex_timedlock.c +++ b/nptl/pthread_mutex_timedlock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2007, 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -126,7 +126,7 @@ pthread_mutex_timedlock (mutex, abstime) int newval = id | (oldval & FUTEX_WAITERS); newval - = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, newval, oldval); if (newval != oldval) { @@ -246,7 +246,7 @@ pthread_mutex_timedlock (mutex, abstime) } } - oldval = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, id, 0); if (oldval != 0) @@ -404,7 +404,7 @@ pthread_mutex_timedlock (mutex, abstime) oldprio = ceiling; oldval - = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, ceilval | 1, ceilval); if (oldval == ceilval) @@ -413,7 +413,7 @@ pthread_mutex_timedlock (mutex, abstime) do { oldval - = atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, ceilval | 2, ceilval | 1); @@ -456,7 +456,7 @@ pthread_mutex_timedlock (mutex, abstime) PTHREAD_MUTEX_PSHARED (mutex)); } } - while (atomic_compare_and_exchange_val_rel (&mutex->__data.__lock, + while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, ceilval | 2, ceilval) != ceilval); } diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c index 0028c5583f..fbe8274a55 100644 --- a/nptl/pthread_mutex_unlock.c +++ b/nptl/pthread_mutex_unlock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005-2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2005-2008, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -213,7 +213,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) /* Unlock. */ if ((mutex->__data.__lock & FUTEX_WAITERS) != 0 - || atomic_compare_and_exchange_bool_acq (&mutex->__data.__lock, 0, + || atomic_compare_and_exchange_bool_rel (&mutex->__data.__lock, 0, THREAD_GETMEM (THREAD_SELF, tid))) { @@ -263,7 +263,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) oldval = mutex->__data.__lock; newval = oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK; } - while (atomic_compare_and_exchange_bool_acq (&mutex->__data.__lock, + while (atomic_compare_and_exchange_bool_rel (&mutex->__data.__lock, newval, oldval)); if ((oldval & ~PTHREAD_MUTEX_PRIO_CEILING_MASK) > 1) |