aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/specific.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index cc2f38d81c..f05881dd82 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2003-02-19 Ulrich Drepper <drepper@redhat.com>
+
+ * specific.c (pthread_key_delete_helper): Don't use GETMEM, we
+ need the target thread's lock.
+
2003-02-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
diff --git a/linuxthreads/specific.c b/linuxthreads/specific.c
index 0956ed1983..aa8fcb5ab3 100644
--- a/linuxthreads/specific.c
+++ b/linuxthreads/specific.c
@@ -80,10 +80,10 @@ static void pthread_key_delete_helper(void *arg, pthread_descr th)
if (!th->p_terminated) {
/* pthread_exit() may try to free th->p_specific[idx1st] concurrently. */
- __pthread_lock(THREAD_GETMEM(th, p_lock), self);
+ __pthread_lock(th->p_lock, self);
if (th->p_specific[idx1st] != NULL)
th->p_specific[idx1st][idx2nd] = NULL;
- __pthread_unlock(THREAD_GETMEM(th, p_lock));
+ __pthread_unlock(th->p_lock);
}
}