summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (from parent 1: 8cf1b30)
raw | patch | inline | side by side (from parent 1: 8cf1b30)
author | Yabin Cui <yabinc@google.com> | |
Sat, 20 Dec 2014 00:31:03 +0000 (16:31 -0800) | ||
committer | Yabin Cui <yabinc@google.com> | |
Sat, 20 Dec 2014 00:31:03 +0000 (16:31 -0800) |
Change-Id: I6c0c71d30fe9d5b888752a4204abd95d5149bb96
libc/bionic/pthread_key.cpp | patch | blob | history |
index b47ef229d8c009d6fcec466894109d807d8379dd..49b72e9deaec6fb268a9e13f62e8ea92cc3824e7 100644 (file)
// Clear value in all threads.
pthread_mutex_lock(&g_thread_list_lock);
for (pthread_internal_t* t = g_thread_list; t != NULL; t = t->next) {
- // Skip zombie threads. They don't have a valid TLS area any more.
- // Similarly, it is possible to have t->tls == NULL for threads that
- // were just recently created through pthread_create() but whose
- // startup trampoline (__pthread_start) hasn't been run yet by the
- // scheduler. t->tls will also be NULL after a thread's stack has been
- // unmapped but before the ongoing pthread_join() is finished.
- if (t->tid == 0 || t->tls == NULL) {
- continue;
- }
-
t->tls[key] = NULL;
}
tls_map.DeleteKey(key);