summaryrefslogtreecommitdiff
path: root/sysdeps/generic/pt-mutex-destroy.c
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2008-06-01 20:25:36 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-04-07 23:16:53 +0200
commite48957feb55420710f89d88ca5a45ce08551ff12 (patch)
tree066cbf6b8a4905b3cb28d9253ac1f9b818f2d265 /sysdeps/generic/pt-mutex-destroy.c
parent447867550c9ea153fdaa9966e92fd11cf543953f (diff)
2008-06-01 Neal H. Walfield <neal@gnu.org>
* include/pthread/pthread.h (PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP): New definition. * sysdeps/generic/bits/mutex.h (__PTHREAD_MUTEX_RECURSIVE_INITIALIZER): New definition. * sysdeps/generic/bits/mutex-attr.h (__pthread_recursive_mutexattr): New definition. * sysdeps/generic/pt-mutexattr.c (__pthread_recursive_mutexattr): New declaration. * sysdeps/generic/pt-mutex-init.c (_pthread_mutex_init): If ATTR is &__PTHREAD_RECURSIVE_MUTEXATTR, don't allocate a copy, just save in MUTEX->ATTR. * sysdeps/generic/pt-mutex-destroy.c (_pthread_mutex_destroy): If MUTEX->ATTR is &__PTHREAD_RECURSIVE_MUTEXATTR, don't free it.
Diffstat (limited to 'sysdeps/generic/pt-mutex-destroy.c')
-rw-r--r--sysdeps/generic/pt-mutex-destroy.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sysdeps/generic/pt-mutex-destroy.c b/sysdeps/generic/pt-mutex-destroy.c
index 72faefe..0c9d514 100644
--- a/sysdeps/generic/pt-mutex-destroy.c
+++ b/sysdeps/generic/pt-mutex-destroy.c
@@ -1,5 +1,5 @@
/* Destroy a mutex. Generic version.
- Copyright (C) 2000,02 Free Software Foundation, Inc.
+ Copyright (C) 2000,02, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,10 @@
int
_pthread_mutex_destroy (pthread_mutex_t *mutex)
{
- if (mutex->attr)
+ if (mutex->attr == &__pthread_recursive_mutexattr)
+ /* Static attributes. */
+ ;
+ else
free (mutex->attr);
return 0;