Merge "Make __get_thread inlined."
This commit is contained in:
commit
6943f2968c
@ -346,6 +346,14 @@ extern "C" void* dlmalloc(size_t size) {
|
||||
return malloc(size);
|
||||
}
|
||||
|
||||
#define __get_thread __real_get_thread
|
||||
#include "pthread_internal.h"
|
||||
#undef __get_thread
|
||||
// Various third-party apps contain a backport of our pthread_rwlock implementation that uses this.
|
||||
extern "C" pthread_internal_t* __get_thread() {
|
||||
return __real_get_thread();
|
||||
}
|
||||
|
||||
#endif // !defined(__LP64__)
|
||||
|
||||
// This is never implemented in bionic, only needed for ABI compatibility with the NDK.
|
||||
|
@ -113,8 +113,10 @@ __LIBC_HIDDEN__ void __init_tls(pthread_internal_t* thread);
|
||||
__LIBC_HIDDEN__ void __init_alternate_signal_stack(pthread_internal_t*);
|
||||
__LIBC_HIDDEN__ void _pthread_internal_add(pthread_internal_t* thread);
|
||||
|
||||
/* Various third-party apps contain a backport of our pthread_rwlock implementation that uses this. */
|
||||
extern "C" __LIBC64_HIDDEN__ pthread_internal_t* __get_thread(void);
|
||||
// Make __get_thread() inlined for performance reason. See http://b/19825434.
|
||||
static inline __always_inline pthread_internal_t* __get_thread() {
|
||||
return reinterpret_cast<pthread_internal_t*>(__get_tls()[TLS_SLOT_THREAD_ID]);
|
||||
}
|
||||
|
||||
__LIBC_HIDDEN__ void pthread_key_clean_all(void);
|
||||
__LIBC_HIDDEN__ void _pthread_internal_remove_locked(pthread_internal_t* thread, bool free_thread);
|
||||
|
@ -68,7 +68,3 @@ void _pthread_internal_add(pthread_internal_t* thread) {
|
||||
}
|
||||
g_thread_list = thread;
|
||||
}
|
||||
|
||||
pthread_internal_t* __get_thread(void) {
|
||||
return reinterpret_cast<pthread_internal_t*>(__get_tls()[TLS_SLOT_THREAD_ID]);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user