summaryrefslogtreecommitdiff
path: root/libpthread/sysdeps/generic/bits/mutex.h
diff options
context:
space:
mode:
authorneal <neal>2008-06-01 20:25:35 +0000
committerneal <neal>2008-06-01 20:25:35 +0000
commitae6ed18f439c84efde973e77377f50ba2481da53 (patch)
treebf18542383b06d23a0e80de0d198b791c5fd387c /libpthread/sysdeps/generic/bits/mutex.h
parentc46c251590e9d1931805cba8ae86d80368aecf68 (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 'libpthread/sysdeps/generic/bits/mutex.h')
-rw-r--r--libpthread/sysdeps/generic/bits/mutex.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/libpthread/sysdeps/generic/bits/mutex.h b/libpthread/sysdeps/generic/bits/mutex.h
index 1aaf80e..e0ae3db 100644
--- a/libpthread/sysdeps/generic/bits/mutex.h
+++ b/libpthread/sysdeps/generic/bits/mutex.h
@@ -1,5 +1,5 @@
/* Mutex type. Generic version.
- Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005, 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
@@ -54,6 +54,10 @@ struct __pthread_mutex
# define __PTHREAD_MUTEX_INITIALIZER \
{ __SPIN_LOCK_INITIALIZER, __SPIN_LOCK_INITIALIZER, 0, 0, 0, 0, 0, 0 }
+# define __PTHREAD_MUTEX_RECURSIVE_INITIALIZER \
+ { __SPIN_LOCK_INITIALIZER, __SPIN_LOCK_INITIALIZER, 0, 0, \
+ (struct __pthread_mutexattr *) &__pthread_recursive_mutexattr, 0, 0, 0 }
+
# endif
#endif /* Not __pthread_mutex_defined. */