thread-posix: Use pthread_(get|set)name_np() if available

Newer generations of libpthread have functions to set and get the thread
names. If available, use them.
This commit is contained in:
Daniel Mack 2011-04-22 04:28:11 +02:00 committed by Colin Guthrie
parent 98f2209663
commit 2411d9accd
2 changed files with 12 additions and 1 deletions

View file

@ -73,6 +73,8 @@ static void* internal_thread_func(void *userdata) {
#ifdef __linux__
prctl(PR_SET_NAME, t->name);
#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN)
pthread_setname_np(t->name);
#endif
t->id = pthread_self();
@ -177,6 +179,8 @@ void pa_thread_set_name(pa_thread *t, const char *name) {
#ifdef __linux__
prctl(PR_SET_NAME, name);
#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN)
pthread_setname_np(name);
#endif
}
@ -194,6 +198,11 @@ const char *pa_thread_get_name(pa_thread *t) {
t->name = NULL;
}
}
#elif defined(HAVE_PTHREAD_GETNAME_NP) && defined(OS_IS_DARWIN)
if (!t->name) {
t->name = pa_xmalloc0(17);
pthread_getname_np(t->id, t->name, 16);
}
#endif
return t->name;