diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 5 | ||||
-rw-r--r-- | linuxthreads/specific.c | 4 |
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); } } |