diff options
-rw-r--r-- | libbacktrace/Backtrace.cpp | 2 | ||||
-rw-r--r-- | libbacktrace/BacktraceCurrent.cpp | 2 | ||||
-rw-r--r-- | libbacktrace/backtrace_test.cpp | 17 | ||||
-rw-r--r-- | libbacktrace/thread_utils.c | 17 | ||||
-rw-r--r-- | libbacktrace/thread_utils.h | 2 | ||||
-rw-r--r-- | libcutils/threads.c | 7 |
6 files changed, 16 insertions, 31 deletions
diff --git a/libbacktrace/Backtrace.cpp b/libbacktrace/Backtrace.cpp index d75c210..4e4003e 100644 --- a/libbacktrace/Backtrace.cpp +++ b/libbacktrace/Backtrace.cpp @@ -27,6 +27,8 @@ #include <backtrace/Backtrace.h> #include <backtrace/BacktraceMap.h> +#include <cutils/threads.h> + #include "BacktraceLog.h" #include "thread_utils.h" #include "UnwindCurrent.h" diff --git a/libbacktrace/BacktraceCurrent.cpp b/libbacktrace/BacktraceCurrent.cpp index fd1f4da..14f04de 100644 --- a/libbacktrace/BacktraceCurrent.cpp +++ b/libbacktrace/BacktraceCurrent.cpp @@ -29,6 +29,8 @@ #include <backtrace/Backtrace.h> #include <backtrace/BacktraceMap.h> +#include <cutils/threads.h> + #include "BacktraceCurrent.h" #include "BacktraceLog.h" #include "ThreadEntry.h" diff --git a/libbacktrace/backtrace_test.cpp b/libbacktrace/backtrace_test.cpp index ba3cbb5..a086547 100644 --- a/libbacktrace/backtrace_test.cpp +++ b/libbacktrace/backtrace_test.cpp @@ -30,20 +30,21 @@ #include <time.h> #include <unistd.h> +#include <algorithm> +#include <memory> +#include <string> +#include <vector> + #include <backtrace/Backtrace.h> #include <backtrace/BacktraceMap.h> -// For the THREAD_SIGNAL definition. -#include "BacktraceCurrent.h" - #include <cutils/atomic.h> -#include <gtest/gtest.h> +#include <cutils/threads.h> -#include <algorithm> -#include <memory> -#include <string> -#include <vector> +#include <gtest/gtest.h> +// For the THREAD_SIGNAL definition. +#include "BacktraceCurrent.h" #include "thread_utils.h" // Number of microseconds per milliseconds. diff --git a/libbacktrace/thread_utils.c b/libbacktrace/thread_utils.c index 6f4cd3c..e75f56e 100644 --- a/libbacktrace/thread_utils.c +++ b/libbacktrace/thread_utils.c @@ -16,25 +16,12 @@ #include "thread_utils.h" -#if defined(__APPLE__) +#if !defined(__BIONIC__) -#include <sys/syscall.h> - -// Mac OS >= 10.6 has a system call equivalent to Linux's gettid(). -pid_t gettid() { - return syscall(SYS_thread_selfid); -} - -#elif !defined(__BIONIC__) - -// glibc doesn't implement or export either gettid or tgkill. +// glibc doesn't implement or export tgkill. #include <unistd.h> #include <sys/syscall.h> -pid_t gettid() { - return syscall(__NR_gettid); -} - int tgkill(int tgid, int tid, int sig) { return syscall(__NR_tgkill, tgid, tid, sig); } diff --git a/libbacktrace/thread_utils.h b/libbacktrace/thread_utils.h index ae4c929..df83581 100644 --- a/libbacktrace/thread_utils.h +++ b/libbacktrace/thread_utils.h @@ -23,8 +23,6 @@ __BEGIN_DECLS int tgkill(int tgid, int tid, int sig); -pid_t gettid(); - __END_DECLS #endif /* _LIBBACKTRACE_THREAD_UTILS_H */ diff --git a/libcutils/threads.c b/libcutils/threads.c index 3d8dd48..036f8c5 100644 --- a/libcutils/threads.c +++ b/libcutils/threads.c @@ -35,12 +35,7 @@ #ifndef __ANDROID__ pid_t gettid() { #if defined(__APPLE__) - uint64_t owner; - int rc = pthread_threadid_np(NULL, &owner); - if (rc != 0) { - abort(); - } - return owner; + return syscall(SYS_thread_selfid); #elif defined(__linux__) return syscall(__NR_gettid); #elif defined(_WIN32) |