From 459502e48ccb6607e531112e7ae89f62b75023c8 Mon Sep 17 00:00:00 2001
From: darkf <lw9k123@gmail.com>
Date: Fri, 28 Nov 2014 21:38:20 -0800
Subject: Fix MinGW build

---
 src/common/thread.cpp | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

(limited to 'src/common/thread.cpp')

diff --git a/src/common/thread.cpp b/src/common/thread.cpp
index dc153ba718..6eeda08287 100644
--- a/src/common/thread.cpp
+++ b/src/common/thread.cpp
@@ -17,7 +17,7 @@ namespace Common
 
 int CurrentThreadId()
 {
-#ifdef _WIN32
+#ifdef MSVC_VER
     return GetCurrentThreadId();
 #elif defined __APPLE__
     return mach_thread_self();
@@ -27,6 +27,14 @@ int CurrentThreadId()
 }
 
 #ifdef _WIN32
+// Supporting functions
+void SleepCurrentThread(int ms)
+{
+    Sleep(ms);
+}
+#endif
+
+#ifdef MSVC_VER
 
 void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask)
 {
@@ -38,12 +46,6 @@ void SetCurrentThreadAffinity(u32 mask)
     SetThreadAffinityMask(GetCurrentThread(), mask);
 }
 
-// Supporting functions
-void SleepCurrentThread(int ms)
-{
-    Sleep(ms);
-}
-
 void SwitchCurrentThread()
 {
     SwitchToThread();
@@ -82,7 +84,7 @@ void SetCurrentThreadName(const char* szThreadName)
     {}
 }
 
-#else // !WIN32, so must be POSIX threads
+#else // !MSVC_VER, so must be POSIX threads
 
 void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask)
 {
@@ -106,6 +108,7 @@ void SetCurrentThreadAffinity(u32 mask)
     SetThreadAffinity(pthread_self(), mask);
 }
 
+#ifndef _WIN32
 void SleepCurrentThread(int ms)
 {
     usleep(1000 * ms);
@@ -115,7 +118,10 @@ void SwitchCurrentThread()
 {
     usleep(1000 * 1);
 }
+#endif
 
+// MinGW with the POSIX threading model does not support pthread_setname_np
+#if !defined(_WIN32) || defined(MSVC_VER)
 void SetCurrentThreadName(const char* szThreadName)
 {
 #ifdef __APPLE__
@@ -126,6 +132,7 @@ void SetCurrentThreadName(const char* szThreadName)
     pthread_setname_np(pthread_self(), szThreadName);
 #endif
 }
+#endif
 
 #endif
 
-- 
cgit v1.2.3-70-g09d2