summaryrefslogtreecommitdiff
path: root/openmp/runtime/src/kmp_affinity.h
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2020-01-20 18:52:10 +0000
committerDavid Carlier <devnexen@gmail.com>2020-01-20 18:52:10 +0000
commitea99c09963488130ec0a61ef39df3fd0fcecad3c (patch)
treefb803f5d352d698bd32a78a2d4f37956f955e2f2 /openmp/runtime/src/kmp_affinity.h
parenta17ad3592ff8c69c683c17fa60910ce326a451b0 (diff)
[OpenMP] affinity little fix for FreeBSD
- pthread affinity np has different semantic than sched affinity counterpart. On success returns strictly 0. Reviewers: chandlerc, AndreyChurbanov, jdoerfert Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D72132
Diffstat (limited to 'openmp/runtime/src/kmp_affinity.h')
-rw-r--r--openmp/runtime/src/kmp_affinity.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/openmp/runtime/src/kmp_affinity.h b/openmp/runtime/src/kmp_affinity.h
index f270bb6dbb8d..664a42393191 100644
--- a/openmp/runtime/src/kmp_affinity.h
+++ b/openmp/runtime/src/kmp_affinity.h
@@ -303,8 +303,9 @@ class KMPNativeAffinity : public KMPAffinity {
int retval =
syscall(__NR_sched_getaffinity, 0, __kmp_affin_mask_size, mask);
#elif KMP_OS_FREEBSD
- int retval =
+ int r =
pthread_getaffinity_np(pthread_self(), __kmp_affin_mask_size, reinterpret_cast<cpuset_t *>(mask));
+ int retval = (r == 0 ? 0 : -1);
#endif
if (retval >= 0) {
return 0;
@@ -322,8 +323,9 @@ class KMPNativeAffinity : public KMPAffinity {
int retval =
syscall(__NR_sched_setaffinity, 0, __kmp_affin_mask_size, mask);
#elif KMP_OS_FREEBSD
- int retval =
+ int r =
pthread_setaffinity_np(pthread_self(), __kmp_affin_mask_size, reinterpret_cast<cpuset_t *>(mask));
+ int retval = (r == 0 ? 0 : -1);
#endif
if (retval >= 0) {
return 0;