From 80da4d1344a668c73c4fac723ac199535eb2e0df Mon Sep 17 00:00:00 2001 From: Robert Ricci Date: Sat, 2 Jun 2018 12:05:49 -0600 Subject: [PATCH] Handle pthread_setname_np on FreeBSD For some reason, the function has a slightly different name and signature --- kitty/threading.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/kitty/threading.h b/kitty/threading.h index 6aa518c37..5ac6d9b57 100644 --- a/kitty/threading.h +++ b/kitty/threading.h @@ -12,17 +12,25 @@ // I cant figure out how to get pthread.h to include this definition on macOS. MACOSX_DEPLOYMENT_TARGET does not work. extern int pthread_setname_np(const char *name); #else +#ifdef __FreeBSD__ +void pthread_set_name_np(pthread_t tid, const char *name); +#else // Need _GNU_SOURCE for pthread_setname_np on linux and that causes other issues on systems with old glibc extern int pthread_setname_np(pthread_t, const char *name); #endif +#endif static inline void set_thread_name(const char *name) { int ret = 0; #ifdef __APPLE__ - ret = pthread_setname_np(name); + ret = pthreadset_name_np(name); +#else +#ifdef __FreeBSD__ + pthread_set_name_np(pthread_self(), name); #else ret = pthread_setname_np(pthread_self(), name); +#endif #endif if (ret != 0) perror("Failed to set thread name"); }