From: Nikolai Lifanov Date: Wed, 6 Jul 2016 12:24:09 +0000 (-0400) Subject: implement thread affinity for FreeBSD X-Git-Url: https://www.flypig.org.uk/git/?p=hashcat.git;a=commitdiff_plain;h=c2bcdbebcb9d3a974cd171f69792c2e611343744 implement thread affinity for FreeBSD --- diff --git a/src/shared.c b/src/shared.c index c2e7db8..e972b7d 100644 --- a/src/shared.c +++ b/src/shared.c @@ -6,8 +6,13 @@ * License.....: MIT */ -#if defined(DARWIN) || defined(__FreeBSD__) +#ifdef DARWIN +#include +#endif + +#ifdef __FreeBSD__ #include +#include #endif #include @@ -4537,6 +4542,9 @@ void set_cpu_affinity (char *cpu_affinity) { #ifdef _WIN DWORD_PTR aff_mask = 0; + #elif __FreeBSD__ + cpuset_t cpuset; + CPU_ZERO (&cpuset); #elif _POSIX cpu_set_t cpuset; CPU_ZERO (&cpuset); @@ -4584,6 +4592,9 @@ void set_cpu_affinity (char *cpu_affinity) #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);