about summary refs log tree commit diff
diff options
context:
space:
mode:
-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);
   }
 }