* License.....: MIT
*/
-#if defined(DARWIN) || defined(__FreeBSD__)
+#ifdef DARWIN
+#include <stdio.h>
+#endif
+
+#ifdef __FreeBSD__
#include <stdio.h>
+#include <pthread_np.h>
#endif
#include <shared.h>
{
#ifdef _WIN
DWORD_PTR aff_mask = 0;
+ #elif __FreeBSD__
+ cpuset_t cpuset;
+ CPU_ZERO (&cpuset);
#elif _POSIX
cpu_set_t cpuset;
CPU_ZERO (&cpuset);
#ifdef _WIN
SetProcessAffinityMask (GetCurrentProcess (), aff_mask);
SetThreadAffinityMask (GetCurrentThread (), aff_mask);
+ #elif __FreeBSD__
+ pthread_t thread = pthread_self ();
+ pthread_setaffinity_np (thread, sizeof (cpuset_t), &cpuset);
#elif _POSIX
pthread_t thread = pthread_self ();
pthread_setaffinity_np (thread, sizeof (cpu_set_t), &cpuset);