diff --git a/src/threading/thread.cpp b/src/threading/thread.cpp index ef639ffef..6fef3683c 100644 --- a/src/threading/thread.cpp +++ b/src/threading/thread.cpp @@ -59,6 +59,8 @@ DEALINGS IN THE SOFTWARE. #include #endif +// See https://msdn.microsoft.com/en-us/library/hh920601.aspx#thread__native_handle_method +#define win32_native_handle() ((HANDLE) getThreadHandle()) Thread::Thread(const std::string &name) : m_name(name), @@ -81,9 +83,8 @@ Thread::~Thread() m_running = false; #if defined(_WIN32) - // See https://msdn.microsoft.com/en-us/library/hh920601.aspx#thread__native_handle_method - TerminateThread((HANDLE) m_thread_obj->native_handle(), 0); - CloseHandle((HANDLE) m_thread_obj->native_handle()); + TerminateThread(win32_native_handle(), 0); + CloseHandle(win32_native_handle()); #else // We need to pthread_kill instead on Android since NDKv5's pthread // implementation is incomplete. @@ -261,13 +262,9 @@ bool Thread::bindToProcessor(unsigned int proc_number) return false; -#elif _MSC_VER +#elif defined(_WIN32) - return SetThreadAffinityMask(getThreadHandle(), 1 << proc_number); - -#elif __MINGW32__ - - return SetThreadAffinityMask(pthread_gethandle(getThreadHandle()), 1 << proc_number); + return SetThreadAffinityMask(win32_native_handle(), 1 << proc_number); #elif __FreeBSD_version >= 702106 || defined(__linux__) || defined(__DragonFly__) @@ -320,13 +317,9 @@ bool Thread::bindToProcessor(unsigned int proc_number) bool Thread::setPriority(int prio) { -#ifdef _MSC_VER +#ifdef _WIN32 - return SetThreadPriority(getThreadHandle(), prio); - -#elif __MINGW32__ - - return SetThreadPriority(pthread_gethandle(getThreadHandle()), prio); + return SetThreadPriority(win32_native_handle(), prio); #else