Loading libutils/Looper.cpp +3 −30 Original line number Diff line number Diff line Loading @@ -70,8 +70,7 @@ int SimpleLooperCallback::handleEvent(int fd, int events, void* data) { // Maximum number of file descriptors for which to retrieve poll events each iteration. static const int EPOLL_MAX_EVENTS = 16; static pthread_once_t gTLSOnce = PTHREAD_ONCE_INIT; static pthread_key_t gTLSKey = 0; thread_local static sp<Looper> gThreadLocalLooper; Looper::Looper(bool allowNonCallbacks) : mAllowNonCallbacks(allowNonCallbacks), Loading @@ -91,38 +90,12 @@ Looper::Looper(bool allowNonCallbacks) Looper::~Looper() { } void Looper::initTLSKey() { int error = pthread_key_create(&gTLSKey, threadDestructor); LOG_ALWAYS_FATAL_IF(error != 0, "Could not allocate TLS key: %s", strerror(error)); } void Looper::threadDestructor(void *st) { Looper* const self = static_cast<Looper*>(st); if (self != nullptr) { self->decStrong((void*)threadDestructor); } } void Looper::setForThread(const sp<Looper>& looper) { sp<Looper> old = getForThread(); // also has side-effect of initializing TLS if (looper != nullptr) { looper->incStrong((void*)threadDestructor); } pthread_setspecific(gTLSKey, looper.get()); if (old != nullptr) { old->decStrong((void*)threadDestructor); } gThreadLocalLooper = looper; } sp<Looper> Looper::getForThread() { int result = pthread_once(& gTLSOnce, initTLSKey); LOG_ALWAYS_FATAL_IF(result != 0, "pthread_once failed"); Looper* looper = (Looper*)pthread_getspecific(gTLSKey); return sp<Looper>::fromExisting(looper); return gThreadLocalLooper; } sp<Looper> Looper::prepare(int opts) { Loading libutils/abi-dumps/arm64/source-based/libutils.so.lsdump +0 −26 Original line number Diff line number Diff line Loading @@ -509,9 +509,6 @@ { "name" : "_ZN7android47LightRefBase_reportIncStrongRequireStrongFailedEPKv" }, { "name" : "_ZN7android6Looper10initTLSKeyEv" }, { "name" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading @@ -527,9 +524,6 @@ { "name" : "_ZN7android6Looper14removeMessagesERKNS_2spINS_14MessageHandlerEEEi" }, { "name" : "_ZN7android6Looper16threadDestructorEPv" }, { "name" : "_ZN7android6Looper17sendMessageAtTimeElRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading Loading @@ -6909,13 +6903,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/LightRefBase.h" }, { "access" : "private", "function_name" : "android::Looper::initTLSKey", "linker_set_key" : "_ZN7android6Looper10initTLSKeyEv", "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessage", "linker_set_key" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading Loading @@ -6988,19 +6975,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "access" : "private", "function_name" : "android::Looper::threadDestructor", "linker_set_key" : "_ZN7android6Looper16threadDestructorEPv", "parameters" : [ { "referenced_type" : "_ZTIPv" } ], "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessageAtTime", "linker_set_key" : "_ZN7android6Looper17sendMessageAtTimeElRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading libutils/abi-dumps/arm_arm64/source-based/libutils.so.lsdump +0 −26 Original line number Diff line number Diff line Loading @@ -513,9 +513,6 @@ { "name" : "_ZN7android47LightRefBase_reportIncStrongRequireStrongFailedEPKv" }, { "name" : "_ZN7android6Looper10initTLSKeyEv" }, { "name" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading @@ -531,9 +528,6 @@ { "name" : "_ZN7android6Looper14removeMessagesERKNS_2spINS_14MessageHandlerEEEi" }, { "name" : "_ZN7android6Looper16threadDestructorEPv" }, { "name" : "_ZN7android6Looper17sendMessageAtTimeExRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading Loading @@ -6949,13 +6943,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/LightRefBase.h" }, { "access" : "private", "function_name" : "android::Looper::initTLSKey", "linker_set_key" : "_ZN7android6Looper10initTLSKeyEv", "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessage", "linker_set_key" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading Loading @@ -7028,19 +7015,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "access" : "private", "function_name" : "android::Looper::threadDestructor", "linker_set_key" : "_ZN7android6Looper16threadDestructorEPv", "parameters" : [ { "referenced_type" : "_ZTIPv" } ], "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessageAtTime", "linker_set_key" : "_ZN7android6Looper17sendMessageAtTimeExRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading libutils/include/utils/Looper.h +0 −2 Original line number Diff line number Diff line Loading @@ -499,8 +499,6 @@ private: void rebuildEpollLocked(); void scheduleEpollRebuildLocked(); static void initTLSKey(); static void threadDestructor(void *st); static void initEpollEvent(struct epoll_event* eventItem); }; Loading Loading
libutils/Looper.cpp +3 −30 Original line number Diff line number Diff line Loading @@ -70,8 +70,7 @@ int SimpleLooperCallback::handleEvent(int fd, int events, void* data) { // Maximum number of file descriptors for which to retrieve poll events each iteration. static const int EPOLL_MAX_EVENTS = 16; static pthread_once_t gTLSOnce = PTHREAD_ONCE_INIT; static pthread_key_t gTLSKey = 0; thread_local static sp<Looper> gThreadLocalLooper; Looper::Looper(bool allowNonCallbacks) : mAllowNonCallbacks(allowNonCallbacks), Loading @@ -91,38 +90,12 @@ Looper::Looper(bool allowNonCallbacks) Looper::~Looper() { } void Looper::initTLSKey() { int error = pthread_key_create(&gTLSKey, threadDestructor); LOG_ALWAYS_FATAL_IF(error != 0, "Could not allocate TLS key: %s", strerror(error)); } void Looper::threadDestructor(void *st) { Looper* const self = static_cast<Looper*>(st); if (self != nullptr) { self->decStrong((void*)threadDestructor); } } void Looper::setForThread(const sp<Looper>& looper) { sp<Looper> old = getForThread(); // also has side-effect of initializing TLS if (looper != nullptr) { looper->incStrong((void*)threadDestructor); } pthread_setspecific(gTLSKey, looper.get()); if (old != nullptr) { old->decStrong((void*)threadDestructor); } gThreadLocalLooper = looper; } sp<Looper> Looper::getForThread() { int result = pthread_once(& gTLSOnce, initTLSKey); LOG_ALWAYS_FATAL_IF(result != 0, "pthread_once failed"); Looper* looper = (Looper*)pthread_getspecific(gTLSKey); return sp<Looper>::fromExisting(looper); return gThreadLocalLooper; } sp<Looper> Looper::prepare(int opts) { Loading
libutils/abi-dumps/arm64/source-based/libutils.so.lsdump +0 −26 Original line number Diff line number Diff line Loading @@ -509,9 +509,6 @@ { "name" : "_ZN7android47LightRefBase_reportIncStrongRequireStrongFailedEPKv" }, { "name" : "_ZN7android6Looper10initTLSKeyEv" }, { "name" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading @@ -527,9 +524,6 @@ { "name" : "_ZN7android6Looper14removeMessagesERKNS_2spINS_14MessageHandlerEEEi" }, { "name" : "_ZN7android6Looper16threadDestructorEPv" }, { "name" : "_ZN7android6Looper17sendMessageAtTimeElRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading Loading @@ -6909,13 +6903,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/LightRefBase.h" }, { "access" : "private", "function_name" : "android::Looper::initTLSKey", "linker_set_key" : "_ZN7android6Looper10initTLSKeyEv", "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessage", "linker_set_key" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading Loading @@ -6988,19 +6975,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "access" : "private", "function_name" : "android::Looper::threadDestructor", "linker_set_key" : "_ZN7android6Looper16threadDestructorEPv", "parameters" : [ { "referenced_type" : "_ZTIPv" } ], "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessageAtTime", "linker_set_key" : "_ZN7android6Looper17sendMessageAtTimeElRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading
libutils/abi-dumps/arm_arm64/source-based/libutils.so.lsdump +0 −26 Original line number Diff line number Diff line Loading @@ -513,9 +513,6 @@ { "name" : "_ZN7android47LightRefBase_reportIncStrongRequireStrongFailedEPKv" }, { "name" : "_ZN7android6Looper10initTLSKeyEv" }, { "name" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading @@ -531,9 +528,6 @@ { "name" : "_ZN7android6Looper14removeMessagesERKNS_2spINS_14MessageHandlerEEEi" }, { "name" : "_ZN7android6Looper16threadDestructorEPv" }, { "name" : "_ZN7android6Looper17sendMessageAtTimeExRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE" }, Loading Loading @@ -6949,13 +6943,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/LightRefBase.h" }, { "access" : "private", "function_name" : "android::Looper::initTLSKey", "linker_set_key" : "_ZN7android6Looper10initTLSKeyEv", "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessage", "linker_set_key" : "_ZN7android6Looper11sendMessageERKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading Loading @@ -7028,19 +7015,6 @@ "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "access" : "private", "function_name" : "android::Looper::threadDestructor", "linker_set_key" : "_ZN7android6Looper16threadDestructorEPv", "parameters" : [ { "referenced_type" : "_ZTIPv" } ], "return_type" : "_ZTIv", "source_file" : "system/core/libutils/include/utils/Looper.h" }, { "function_name" : "android::Looper::sendMessageAtTime", "linker_set_key" : "_ZN7android6Looper17sendMessageAtTimeExRKNS_2spINS_14MessageHandlerEEERKNS_7MessageE", Loading
libutils/include/utils/Looper.h +0 −2 Original line number Diff line number Diff line Loading @@ -499,8 +499,6 @@ private: void rebuildEpollLocked(); void scheduleEpollRebuildLocked(); static void initTLSKey(); static void threadDestructor(void *st); static void initEpollEvent(struct epoll_event* eventItem); }; Loading