Commit f489b6f9 authored by Ting-Wei Lan's avatar Ting-Wei Lan

gthread: Set thread name on *BSD

Add support for setting thread name on FreeBSD, DragonFlyBSD, OpenBSD,
and NetBSD.

Fixes #1761
parent db66bc79
Pipeline #109496 passed with stages
in 15 minutes and 45 seconds
......@@ -57,6 +57,9 @@
#include <sys/time.h>
#include <unistd.h>
#ifdef HAVE_PTHREAD_SET_NAME_NP
#include <pthread_np.h>
#endif
#ifdef HAVE_SCHED_H
#include <sched.h>
#endif
......@@ -1245,10 +1248,14 @@ g_system_thread_exit (void)
void
g_system_thread_set_name (const gchar *name)
{
#if defined(HAVE_PTHREAD_SETNAME_NP_WITH_TID)
pthread_setname_np (pthread_self(), name); /* on Linux and Solaris */
#elif defined(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID)
#if defined(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID)
pthread_setname_np (name); /* on OS X and iOS */
#elif defined(HAVE_PTHREAD_SETNAME_NP_WITH_TID)
pthread_setname_np (pthread_self (), name); /* on Linux and Solaris */
#elif defined(HAVE_PTHREAD_SETNAME_NP_WITH_TID_AND_ARG)
pthread_setname_np (pthread_self (), "%s", (gchar *) name); /* on NetBSD */
#elif defined(HAVE_PTHREAD_SET_NAME_NP)
pthread_set_name_np (pthread_self (), name); /* on FreeBSD, DragonFlyBSD, OpenBSD */
#endif
}
......
......@@ -1669,6 +1669,25 @@ else
dependencies : thread_dep)
# Linux, Solaris, etc.
glib_conf.set('HAVE_PTHREAD_SETNAME_NP_WITH_TID', 1)
elif cc.links(pthread_prefix + '''
int main() {
pthread_setname_np(pthread_self(), "%s", "example");
return 0;
}''',
name : 'pthread_setname_np(pthread_t, const char*, void*)',
dependencies : thread_dep)
# NetBSD
glib_conf.set('HAVE_PTHREAD_SETNAME_NP_WITH_TID_AND_ARG', 1)
elif cc.links(pthread_prefix + '''
#include <pthread_np.h>
int main() {
pthread_set_name_np(pthread_self(), "example");
return 0;
}''',
name : 'pthread_set_name_np(pthread_t, const char*)',
dependencies : thread_dep)
# FreeBSD, DragonFlyBSD, OpenBSD, etc.
glib_conf.set('HAVE_PTHREAD_SET_NAME_NP', 1)
endif
endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment