aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/manager.c4
-rw-r--r--linuxthreads/sysdeps/pthread/pthread.h5
2 files changed, 7 insertions, 2 deletions
diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c
index 3a6f085bbf..21a692847f 100644
--- a/linuxthreads/manager.c
+++ b/linuxthreads/manager.c
@@ -315,8 +315,8 @@ static int pthread_allocate_stack(const pthread_attr_t *attr,
else
{
/* Put a bad page at the bottom of the stack */
- guardaddr = (void *)new_thread_bottom - stacksize;
guardsize = attr->__guardsize;
+ guardaddr = (void *)new_thread_bottom - guardsize;
if (mmap ((caddr_t) guardaddr, guardsize, 0, MAP_FIXED, -1, 0)
== MAP_FAILED)
{
@@ -512,7 +512,7 @@ static void pthread_free(pthread_descr th)
/* One fewer threads in __pthread_handles */
__pthread_handles_num--;
- /* Destroy read lock list, and list of free read lock structures.
+ /* Destroy read lock list, and list of free read lock structures.
If the former is not empty, it means the thread exited while
holding read locks! */
diff --git a/linuxthreads/sysdeps/pthread/pthread.h b/linuxthreads/sysdeps/pthread/pthread.h
index 925db09b86..1ff7cba7a6 100644
--- a/linuxthreads/sysdeps/pthread/pthread.h
+++ b/linuxthreads/sysdeps/pthread/pthread.h
@@ -43,6 +43,11 @@ __BEGIN_DECLS
{ {0, 0}, 0, NULL, NULL, NULL, \
PTHREAD_RWLOCK_DEFAULT_NP, PTHREAD_PROCESS_PRIVATE }
#endif
+#ifdef __USE_GNU
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+ { {0, 0}, 0, NULL, NULL, NULL, \
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_PROCESS_PRIVATE }
+#endif
/* Values for attributes. */