summaryrefslogtreecommitdiff
path: root/libpthread/sysdeps/generic/pt-mutex-init.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2010-08-01 12:11:21 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2010-08-01 12:11:21 +0200
commit9de2a32ced4076497e26ebfcffbd8c3ec260699b (patch)
treeeb739cf07b7efc0cb81fb65622957f78e01d8111 /libpthread/sysdeps/generic/pt-mutex-init.c
parent57ef58b1d62c28726f162a0a5cd3d2e7f7c92eed (diff)
parent872345fd3c7bf57a6e6b87e35159b28ff290a965 (diff)
Merge tag 'upstream/20090701'
Diffstat (limited to 'libpthread/sysdeps/generic/pt-mutex-init.c')
-rw-r--r--libpthread/sysdeps/generic/pt-mutex-init.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/libpthread/sysdeps/generic/pt-mutex-init.c b/libpthread/sysdeps/generic/pt-mutex-init.c
index a818fe3a..2f960286 100644
--- a/libpthread/sysdeps/generic/pt-mutex-init.c
+++ b/libpthread/sysdeps/generic/pt-mutex-init.c
@@ -35,14 +35,11 @@ _pthread_mutex_init (pthread_mutex_t *mutex,
/* The default attributes. */
return 0;
- if (attr == &__pthread_recursive_mutexattr)
- /* Non-default but known attributes. */
- {
- mutex->attr = attr;
- return 0;
- }
+ if (! mutex->attr
+ || mutex->attr == __PTHREAD_ERRORCHECK_MUTEXATTR
+ || mutex->attr == __PTHREAD_RECURSIVE_MUTEXATTR)
+ mutex->attr = malloc (sizeof *attr);
- mutex->attr = malloc (sizeof *attr);
if (! mutex->attr)
return ENOMEM;