diff --git a/adb/fdevent.cpp b/adb/fdevent.cpp index d2855619b..ba82e7c5f 100644 --- a/adb/fdevent.cpp +++ b/adb/fdevent.cpp @@ -21,6 +21,7 @@ #include "fdevent.h" #include +#include #include #include #include @@ -36,6 +37,7 @@ #include #include #include +#include #include "adb_io.h" #include "adb_trace.h" @@ -78,7 +80,7 @@ static auto& g_poll_node_map = *new std::unordered_map(); static auto& g_pending_list = *new std::list(); static std::atomic terminate_loop(false); static bool main_thread_valid; -static unsigned long main_thread_id; +static uint64_t main_thread_id; static auto& run_queue_notify_fd = *new unique_fd(); static auto& run_queue_mutex = *new std::mutex(); @@ -86,13 +88,13 @@ static auto& run_queue GUARDED_BY(run_queue_mutex) = *new std::deque + +namespace android { +namespace base { +uint64_t GetThreadId(); +} +} // namespace android + +#endif diff --git a/base/logging.cpp b/base/logging.cpp index a31feefab..30d7f8d57 100644 --- a/base/logging.cpp +++ b/base/logging.cpp @@ -21,6 +21,7 @@ #include "android-base/logging.h" #include +#include #include #include @@ -54,41 +55,7 @@ #include #include - -// For gettid. -#if defined(__APPLE__) -#include "AvailabilityMacros.h" // For MAC_OS_X_VERSION_MAX_ALLOWED -#include -#include -#include -#include -#include -#elif defined(__linux__) && !defined(__ANDROID__) -#include -#include -#elif defined(_WIN32) -#include -#endif - -#if defined(_WIN32) -typedef uint32_t thread_id; -#else -typedef pid_t thread_id; -#endif - -static thread_id GetThreadId() { -#if defined(__BIONIC__) - return gettid(); -#elif defined(__APPLE__) - uint64_t tid; - pthread_threadid_np(NULL, &tid); - return tid; -#elif defined(__linux__) - return syscall(__NR_gettid); -#elif defined(_WIN32) - return GetCurrentThreadId(); -#endif -} +#include namespace { #if defined(__GLIBC__) @@ -223,8 +190,8 @@ void StderrLogger(LogId, LogSeverity severity, const char* tag, const char* file static_assert(arraysize(log_characters) - 1 == FATAL + 1, "Mismatch in size of log_characters and values in LogSeverity"); char severity_char = log_characters[severity]; - fprintf(stderr, "%s %c %s %5d %5d %s:%u] %s\n", tag ? tag : "nullptr", severity_char, timestamp, - getpid(), GetThreadId(), file, line, message); + fprintf(stderr, "%s %c %s %5d %5" PRIu64 " %s:%u] %s\n", tag ? tag : "nullptr", severity_char, + timestamp, getpid(), GetThreadId(), file, line, message); } void DefaultAborter(const char* abort_message) { diff --git a/base/threads.cpp b/base/threads.cpp new file mode 100644 index 000000000..a71382bc5 --- /dev/null +++ b/base/threads.cpp @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include +#include + +#if defined(__APPLE__) +#include +#elif defined(__linux__) && !defined(__ANDROID__) +#include +#elif defined(_WIN32) +#include +#endif + +namespace android { +namespace base { + +uint64_t GetThreadId() { +#if defined(__BIONIC__) + return gettid(); +#elif defined(__APPLE__) + uint64_t tid; + pthread_threadid_np(NULL, &tid); + return tid; +#elif defined(__linux__) + return syscall(__NR_gettid); +#elif defined(_WIN32) + return GetCurrentThreadId(); +#endif +} + +} // namespace base +} // namespace android