summaryrefslogtreecommitdiffstats
path: root/src/common/thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/common/thread.cpp82
1 files changed, 32 insertions, 50 deletions
diff --git a/src/common/thread.cpp b/src/common/thread.cpp
index 7bbf080bc..6e7b39b9a 100644
--- a/src/common/thread.cpp
+++ b/src/common/thread.cpp
@@ -3,29 +3,25 @@
// Refer to the license.txt file included.
#include "common/thread.h"
-
#ifdef __APPLE__
- #include <mach/mach.h>
+#include <mach/mach.h>
#elif defined(_WIN32)
- #include <Windows.h>
+#include <Windows.h>
+#else
+#if defined(BSD4_4) || defined(__OpenBSD__)
+#include <pthread_np.h>
#else
- #if defined(BSD4_4) || defined(__OpenBSD__)
- #include <pthread_np.h>
- #else
- #include <pthread.h>
- #endif
- #include <sched.h>
+#include <pthread.h>
+#endif
+#include <sched.h>
#endif
-
#ifndef _WIN32
- #include <unistd.h>
+#include <unistd.h>
#endif
-namespace Common
-{
+namespace Common {
-int CurrentThreadId()
-{
+int CurrentThreadId() {
#ifdef _MSC_VER
return GetCurrentThreadId();
#elif defined __APPLE__
@@ -37,26 +33,22 @@ int CurrentThreadId()
#ifdef _WIN32
// Supporting functions
-void SleepCurrentThread(int ms)
-{
+void SleepCurrentThread(int ms) {
Sleep(ms);
}
#endif
#ifdef _MSC_VER
-void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask)
-{
+void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask) {
SetThreadAffinityMask(thread, mask);
}
-void SetCurrentThreadAffinity(u32 mask)
-{
+void SetCurrentThreadAffinity(u32 mask) {
SetThreadAffinityMask(GetCurrentThread(), mask);
}
-void SwitchCurrentThread()
-{
+void SwitchCurrentThread() {
SwitchToThread();
}
@@ -66,40 +58,34 @@ void SwitchCurrentThread()
// This is implemented much nicer in upcoming msvc++, see:
// http://msdn.microsoft.com/en-us/library/xcb2z8hs(VS.100).aspx
-void SetCurrentThreadName(const char* szThreadName)
-{
+void SetCurrentThreadName(const char* szThreadName) {
static const DWORD MS_VC_EXCEPTION = 0x406D1388;
- #pragma pack(push,8)
- struct THREADNAME_INFO
- {
- DWORD dwType; // must be 0x1000
- LPCSTR szName; // pointer to name (in user addr space)
+#pragma pack(push, 8)
+ struct THREADNAME_INFO {
+ DWORD dwType; // must be 0x1000
+ LPCSTR szName; // pointer to name (in user addr space)
DWORD dwThreadID; // thread ID (-1=caller thread)
- DWORD dwFlags; // reserved for future use, must be zero
+ DWORD dwFlags; // reserved for future use, must be zero
} info;
- #pragma pack(pop)
+#pragma pack(pop)
info.dwType = 0x1000;
info.szName = szThreadName;
- info.dwThreadID = -1; //dwThreadID;
+ info.dwThreadID = -1; // dwThreadID;
info.dwFlags = 0;
- __try
- {
- RaiseException(MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info);
+ __try {
+ RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info);
+ } __except (EXCEPTION_CONTINUE_EXECUTION) {
}
- __except(EXCEPTION_CONTINUE_EXECUTION)
- {}
}
#else // !MSVC_VER, so must be POSIX threads
-void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask)
-{
+void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask) {
#ifdef __APPLE__
- thread_policy_set(pthread_mach_thread_np(thread),
- THREAD_AFFINITY_POLICY, (integer_t *)&mask, 1);
+ thread_policy_set(pthread_mach_thread_np(thread), THREAD_AFFINITY_POLICY, (integer_t*)&mask, 1);
#elif (defined __linux__ || defined BSD4_4) && !(defined ANDROID)
cpu_set_t cpu_set;
CPU_ZERO(&cpu_set);
@@ -112,27 +98,23 @@ void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask)
#endif
}
-void SetCurrentThreadAffinity(u32 mask)
-{
+void SetCurrentThreadAffinity(u32 mask) {
SetThreadAffinity(pthread_self(), mask);
}
#ifndef _WIN32
-void SleepCurrentThread(int ms)
-{
+void SleepCurrentThread(int ms) {
usleep(1000 * ms);
}
-void SwitchCurrentThread()
-{
+void SwitchCurrentThread() {
usleep(1000 * 1);
}
#endif
// MinGW with the POSIX threading model does not support pthread_setname_np
#if !defined(_WIN32) || defined(_MSC_VER)
-void SetCurrentThreadName(const char* szThreadName)
-{
+void SetCurrentThreadName(const char* szThreadName) {
#ifdef __APPLE__
pthread_setname_np(szThreadName);
#elif defined(__OpenBSD__)