Commit 83150842 authored by Robert Pluim's avatar Robert Pluim

Cater for 3-argument version of pthread_setname_np

Fixes Bug#39363.

* configure.ac: Add check for 3-argument version of
pthread_setname_np.
* src/systhread.c (sys_thread_set_name)
[HAVE_PTHREAD_SETNAME_NP_3ARG]: Call pthread_setname_np with
3 arguments.
parent f27187f9
Pipeline #4740 passed with stage
in 55 minutes and 27 seconds
......@@ -4197,6 +4197,21 @@ if test "$ac_cv_func_pthread_setname_np" = "yes"; then
AC_DEFINE(
HAVE_PTHREAD_SETNAME_NP_1ARG, 1,
[Define to 1 if pthread_setname_np takes a single argument.])
else
AC_CACHE_CHECK(
[whether pthread_setname_np takes three arguments],
[emacs_cv_pthread_setname_np_3arg],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <pthread.h>]],
[[pthread_setname_np (0, "%s", "a");]])],
[emacs_cv_pthread_setname_np_3arg=yes],
[emacs_cv_pthread_setname_np_3arg=no])])
if test "$emacs_cv_pthread_setname_np_3arg" = "yes"; then
AC_DEFINE(
HAVE_PTHREAD_SETNAME_NP_3ARG, 1,
[Define to 1 if pthread_setname_np takes three arguments.])
fi
fi
fi
......
......@@ -214,11 +214,13 @@ sys_thread_set_name (const char *name)
char p_name[TASK_COMM_LEN];
strncpy (p_name, name, TASK_COMM_LEN - 1);
p_name[TASK_COMM_LEN - 1] = '\0';
#ifdef HAVE_PTHREAD_SETNAME_NP_1ARG
# ifdef HAVE_PTHREAD_SETNAME_NP_1ARG
pthread_setname_np (p_name);
#else
# elif defined HAVE_PTHREAD_SETNAME_NP_3ARG
pthread_setname_np (pthread_self (), "%s", p_name);
# else
pthread_setname_np (pthread_self (), p_name);
#endif
# 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