[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 8315084: Cater for 3-argument version of pthread_setname_np
From: |
Robert Pluim |
Subject: |
emacs-27 8315084: Cater for 3-argument version of pthread_setname_np |
Date: |
Mon, 3 Feb 2020 10:40:55 -0500 (EST) |
branch: emacs-27
commit 831508422e26e6d88dd5d8960e2569c489604c85
Author: Robert Pluim <address@hidden>
Commit: Robert Pluim <address@hidden>
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.
---
configure.ac | 15 +++++++++++++++
src/systhread.c | 8 +++++---
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3c47da6..aa2d9ef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
diff --git a/src/systhread.c b/src/systhread.c
index c649ae8..0d600d6 100644
--- a/src/systhread.c
+++ b/src/systhread.c
@@ -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
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-27 8315084: Cater for 3-argument version of pthread_setname_np,
Robert Pluim <=