diff options
| author | David Carlier <devnexen@gmail.com> | 2020-01-20 18:52:10 +0000 |
|---|---|---|
| committer | David Carlier <devnexen@gmail.com> | 2020-01-20 18:52:10 +0000 |
| commit | ea99c09963488130ec0a61ef39df3fd0fcecad3c (patch) | |
| tree | fb803f5d352d698bd32a78a2d4f37956f955e2f2 /openmp/runtime/src/kmp_affinity.h | |
| parent | a17ad3592ff8c69c683c17fa60910ce326a451b0 (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.h | 6 |
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; |
