Просмотр исходного кода

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.
Jan Beich 9 лет назад
Родитель
Сommit
8ce1ec7ffa
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      src/common/thread.cpp

+ 5 - 1
src/common/thread.cpp

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