aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/common/thread.cpp
diff options
context:
space:
mode:
authorGravatar darkf <lw9k123@gmail.com>2014-11-28 21:38:20 -0800
committerGravatar darkf <lw9k123@gmail.com>2014-11-28 21:38:20 -0800
commit459502e48ccb6607e531112e7ae89f62b75023c8 (patch)
tree491c2a24f1496d4abab0d3339e559b9facc74265 /src/common/thread.cpp
parent2a4b698f8e89f412e725b47fac77cedc5645bc37 (diff)
Fix MinGW build
Diffstat (limited to 'src/common/thread.cpp')
-rw-r--r--src/common/thread.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/common/thread.cpp b/src/common/thread.cpp
index dc153ba7..6eeda082 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