Handle pthread_setname_np on FreeBSD

For some reason, the function has a slightly different name and
signature
This commit is contained in:
Robert Ricci 2018-06-02 12:05:49 -06:00
parent e7ad2637d8
commit 80da4d1344

View File

@ -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");
}