Skip to content

Commit 47fc14a

Browse files
authored
Merge pull request #147 from intel-innersource/rdementi/affinity-opt-freebsd
optimize affinity on FreeBSD
2 parents 7aa826e + b653f0b commit 47fc14a

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/cpucounters.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
5959
#include <pthread.h>
6060
#if defined(__FreeBSD__) || (defined(__DragonFly__) && __DragonFly_version >= 400707)
6161
#include <pthread_np.h>
62+
#include <sys/_cpuset.h>
63+
#include <sys/cpuset.h>
6264
#endif
6365
#include <errno.h>
6466
#include <sys/time.h>
@@ -232,12 +234,11 @@ class TemporalThreadAffinity // speedup trick for Linux, FreeBSD, DragonFlyBSD,
232234
cpu_set_t new_affinity;
233235
CPU_ZERO(&new_affinity);
234236
CPU_SET(core_id, &new_affinity);
235-
/* TODO: use CPU_CMP
236-
if (CPU_EQUAL(&old_affinity, &new_affinity))
237+
// CPU_CMP() returns true if old_affinity is NOT equal to new_affinity
238+
if (!(CPU_CMP(&old_affinity, &new_affinity)))
237239
{
238-
return;
240+
return; // the same affinity => return
239241
}
240-
*/
241242
res = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &new_affinity);
242243
if (res != 0 && checkStatus)
243244
{

0 commit comments

Comments
 (0)