diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-11-12 20:29:35 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2008-11-12 20:29:35 +0000 |
commit | 03c8e287448a12c8c4c6db3570f5b7e3930d488d (patch) | |
tree | 6227d4a8b3362cade23f1a5bdf6065c4e4a415ec /nptl/pthread_mutex_unlock.c | |
parent | c02fa54041a68c12107ec577770ff81329af3bef (diff) |
Updated to fedora-glibc-20081112T2008cvs/fedora-glibc-2_8_90-17
Diffstat (limited to 'nptl/pthread_mutex_unlock.c')
-rw-r--r-- | nptl/pthread_mutex_unlock.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c index d33d0593d8..a14c43ece7 100644 --- a/nptl/pthread_mutex_unlock.c +++ b/nptl/pthread_mutex_unlock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2005-2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -196,9 +196,13 @@ __pthread_mutex_unlock_usercnt (mutex, decr) THREAD_GETMEM (THREAD_SELF, tid))) { + int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP; + int private = (robust + ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex) + : PTHREAD_MUTEX_PSHARED (mutex)); INTERNAL_SYSCALL_DECL (__err); INTERNAL_SYSCALL (futex, __err, 2, &mutex->__data.__lock, - FUTEX_UNLOCK_PI); + __lll_private_flag (FUTEX_UNLOCK_PI, private)); } THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL); |