summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/cancel.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 4b86627f17..b9045932bd 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2002-08-02  Ulrich Drepper  <drepper@redhat.com>
+
+	* cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
+	Don't use p_libc_specific element in thread descriptor.
+
 2002-07-30  Roland McGrath  <roland@redhat.com>
 
 	* sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
diff --git a/linuxthreads/cancel.c b/linuxthreads/cancel.c
index 5649bc41c6..47c0bfee04 100644
--- a/linuxthreads/cancel.c
+++ b/linuxthreads/cancel.c
@@ -202,8 +202,13 @@ void __pthread_perform_cleanup(char *currentframe)
     }
 
   /* And the TSD which needs special help.  */
+#if !(USE_TLS && HAVE___THREAD)
   if (THREAD_GETMEM(self, p_libc_specific[_LIBC_TSD_KEY_RPC_VARS]) != NULL)
     __rpc_thread_destroy ();
+#else
+  if (__libc_tsd_get (RPC_VARS) != NULL)
+    __rpc_thread_destroy ();
+#endif
 }
 
 #ifndef SHARED