1
0
Fork 0
forked from suyu/suyu

common: only FreeBSD has thread affinity compatible with Linux

src/common/thread.cpp:90:5: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'?
    cpu_set_t cpu_set;
    ^~~~~~~~~
    cpuset_t
/usr/include/sys/_cpuset.h:48:24: note: 'cpuset_t' declared here
typedef struct _cpuset cpuset_t;
                       ^
1 error generated.
This commit is contained in:
Jan Beich 2016-10-10 02:33:41 +00:00
parent 1410bd3bd0
commit 8ce1ec7ffa

View file

@ -19,6 +19,10 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifdef __FreeBSD__
#define cpu_set_t cpuset_t
#endif
namespace Common { namespace Common {
int CurrentThreadId() { int CurrentThreadId() {
@ -86,7 +90,7 @@ void SetCurrentThreadName(const char* szThreadName) {
void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask) { void SetThreadAffinity(std::thread::native_handle_type thread, u32 mask) {
#ifdef __APPLE__ #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) #elif (defined __linux__ || defined __FreeBSD__) && !(defined ANDROID)
cpu_set_t cpu_set; cpu_set_t cpu_set;
CPU_ZERO(&cpu_set); CPU_ZERO(&cpu_set);