OSDN Git Service

Revert "ART: Use bionic TLS slot for thread-self"
authorAndreas Gampe <agampe@google.com>
Wed, 5 Aug 2015 00:31:02 +0000 (00:31 +0000)
committerAndreas Gampe <agampe@google.com>
Wed, 5 Aug 2015 00:31:02 +0000 (00:31 +0000)
This reverts commit b81535875ff46d1630c76091fe969a9eb7fc4d16.

Breaking tests, need to investigate.

Change-Id: Iab8c4f6136e6cb9bd6cf3c3495aa33962ef890ee

build/Android.common_build.mk
runtime/thread-inl.h
runtime/thread.cc

index 3a1bd09..05cfc42 100644 (file)
@@ -209,11 +209,6 @@ ART_C_INCLUDES := \
   external/vixl/src \
   external/zlib \
 
-# We optimize Thread::Current() with a direct TLS access. This requires access to a private
-# Bionic header.
-# Note: technically we only need this on device, but this avoids the duplication of the includes.
-ART_C_INCLUDES += bionic/libc/private
-
 # Base set of cflags used by all things ART.
 art_cflags := \
   -fno-rtti \
index 53f95a6..39ef68a 100644 (file)
 
 #include "thread.h"
 
-#ifdef HAVE_ANDROID_OS
-#include <bionic_tls.h>  // Access to our own TLS slot.
-#endif
-
 #include <pthread.h>
 
 #include "base/casts.h"
@@ -45,11 +41,7 @@ inline Thread* Thread::Current() {
   if (!is_started_) {
     return nullptr;
   } else {
-#ifdef HAVE_ANDROID_OS
-    void* thread = __get_tls()[TLS_SLOT_ART_THREAD_SELF];
-#else
     void* thread = pthread_getspecific(Thread::pthread_key_self_);
-#endif
     return reinterpret_cast<Thread*>(thread);
   }
 }
index d5b2870..6949b0b 100644 (file)
@@ -527,11 +527,7 @@ bool Thread::Init(ThreadList* thread_list, JavaVMExt* java_vm, JNIEnvExt* jni_en
   InitCardTable();
   InitTid();
 
-#ifdef HAVE_ANDROID_OS
-  __get_tls()[TLS_SLOT_ART_THREAD_SELF] = this;
-#else
   CHECK_PTHREAD_CALL(pthread_setspecific, (Thread::pthread_key_self_, this), "attach self");
-#endif
   DCHECK_EQ(Thread::Current(), this);
 
   tls32_.thin_lock_thread_id = thread_list->AllocThreadId(this);