about summary refs log tree commit diff
path: root/sysdeps/htl/pt-key-delete.c
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2021-09-15 20:11:08 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-09-16 01:04:05 +0200
commit166bb3eac351b88191d440b0fe8d5d7b757eaed0 (patch)
tree2a0366c36387bcee5c4ae2704ccca394cd969f48 /sysdeps/htl/pt-key-delete.c
parent4b6574a6f63b6c766f27be4a0b4c9376a35a4bd5 (diff)
downloadglibc-166bb3eac351b88191d440b0fe8d5d7b757eaed0.tar.gz
glibc-166bb3eac351b88191d440b0fe8d5d7b757eaed0.tar.xz
glibc-166bb3eac351b88191d440b0fe8d5d7b757eaed0.zip
htl: Move thread table to ld.so
The next commit is going to introduce a new implementation of
THREAD_GSCOPE_WAIT which needs to access the list of threads.
Since it must be usable from the dynamic laoder, we have to move
the symbols for the list of threads into the loader.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20210915171110.226187-2-bugaevc@gmail.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'sysdeps/htl/pt-key-delete.c')
-rw-r--r--sysdeps/htl/pt-key-delete.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/htl/pt-key-delete.c b/sysdeps/htl/pt-key-delete.c
index 4e77ef7521..9f5907bf13 100644
--- a/sysdeps/htl/pt-key-delete.c
+++ b/sysdeps/htl/pt-key-delete.c
@@ -39,12 +39,12 @@ __pthread_key_delete (pthread_key_t key)
       __pthread_key_destructors[key] = PTHREAD_KEY_INVALID;
       __pthread_key_invalid_count++;
 
-      __pthread_rwlock_rdlock (&__pthread_threads_lock);
-      for (i = 0; i < __pthread_num_threads; ++i)
+      __libc_rwlock_rdlock (GL (dl_pthread_threads_lock));
+      for (i = 0; i < GL (dl_pthread_num_threads); ++i)
 	{
 	  struct __pthread *t;
 
-	  t = __pthread_threads[i];
+	  t = GL (dl_pthread_threads)[i];
 
 	  if (t == NULL)
 	    continue;
@@ -54,7 +54,7 @@ __pthread_key_delete (pthread_key_t key)
 	  if (key < t->thread_specifics_size)
 	    t->thread_specifics[key] = 0;
 	}
-      __pthread_rwlock_unlock (&__pthread_threads_lock);
+      __libc_rwlock_unlock (GL (dl_pthread_threads_lock));
     }
 
   __pthread_mutex_unlock (&__pthread_key_lock);