summaryrefslogtreecommitdiff
path: root/rts/posix/OSThreads.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-04-02 10:51:53 -0400
committerBen Gamari <ben@smart-cactus.org>2021-04-02 11:11:29 -0400
commita45fa01387fd15b4bf8291cf02931cecac86c3a4 (patch)
tree6ae01ecacef626d3442947a4d1cd71765c891f59 /rts/posix/OSThreads.c
parentce706faeef3964116c6e1dd0e6ae2f2e77fde57d (diff)
downloadhaskell-wip/T19637.tar.gz
rts: Fix usage of pthread_setname_npwip/T19637
Previously we used this non-portable function unconditionally, breaking FreeBSD. Fixes #19637.
Diffstat (limited to 'rts/posix/OSThreads.c')
-rw-r--r--rts/posix/OSThreads.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/rts/posix/OSThreads.c b/rts/posix/OSThreads.c
index 200a4ccdad..b815894a9f 100644
--- a/rts/posix/OSThreads.c
+++ b/rts/posix/OSThreads.c
@@ -30,7 +30,7 @@
#if defined(HAVE_PTHREAD_H)
#include <pthread.h>
-#if defined(freebsd_HOST_OS)
+#if defined(HAVE_PTHREAD_NP_H)
#include <pthread_np.h>
#endif
#endif
@@ -153,8 +153,12 @@ createOSThread (OSThreadId* pId, char *name STG_UNUSED,
int result = pthread_create(pId, NULL, startProc, param);
if (!result) {
pthread_detach(*pId);
-#if defined(HAVE_PTHREAD_SETNAME_NP)
+#if defined(HAVE_PTHREAD_SET_NAME_NP)
+ pthread_set_name_np(*pId, name);
+#elif defined(HAVE_PTHREAD_SETNAME_NP)
pthread_setname_np(*pId, name);
+#elif defined(HAVE_PTHREAD_SETNAME_NP_DARWIN)
+ pthread_setname_np(name);
#endif
}
return result;