diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/config.in | 3 | ||||
-rwxr-xr-x | gdb/configure | 9 | ||||
-rw-r--r-- | gdb/gdbserver/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/gdbserver/config.in | 3 | ||||
-rwxr-xr-x | gdb/gdbserver/configure | 9 | ||||
-rw-r--r-- | gdb/gdbsupport/common.m4 | 2 | ||||
-rw-r--r-- | gdb/gdbsupport/thread-pool.c | 16 |
8 files changed, 45 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0c5aab2..94a8bdc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,13 @@ 2019-11-26 Tom Tromey <tom@tromey.com> + * gdbsupport/thread-pool.c (thread_pool::set_thread_count): Set + name of worker thread. + * gdbsupport/common.m4 (GDB_AC_COMMON): Check for + pthread_setname_np. + * configure, config.in: Rebuild. + +2019-11-26 Tom Tromey <tom@tromey.com> + * python/python.c (class gdbpy_gil): New. (struct gdbpy_event): Add constructor, destructor, operator(). (gdbpy_post_event): Use run_on_main_thread. diff --git a/gdb/config.in b/gdb/config.in index 61e63e2..1caf764 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -342,6 +342,9 @@ /* Have PTHREAD_PRIO_INHERIT. */ #undef HAVE_PTHREAD_PRIO_INHERIT +/* Define to 1 if you have the `pthread_setname_np' function. */ +#undef HAVE_PTHREAD_SETNAME_NP + /* Define to 1 if you have the `pthread_sigmask' function. */ #undef HAVE_PTHREAD_SIGMASK diff --git a/gdb/configure b/gdb/configure index dd936d2..6b64619 100755 --- a/gdb/configure +++ b/gdb/configure @@ -14333,12 +14333,13 @@ $as_echo "$gdb_cv_cxx_std_thread" >&6; } # This check must be here, while LIBS includes any necessary # threading library. - for ac_func in pthread_sigmask + for ac_func in pthread_sigmask pthread_setname_np do : - ac_fn_cxx_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" -if test "x$ac_cv_func_pthread_sigmask" = xyes; then : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_SIGMASK 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 00b0a0d..de6c311 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,9 @@ 2019-11-26 Tom Tromey <tom@tromey.com> + * configure, config.in: Rebuild. + +2019-11-26 Tom Tromey <tom@tromey.com> + * remote-utils.c (block_unblock_async_io): Use gdb_sigmask. * linux-low.c (linux_wait_for_event_filtered, linux_async): Use gdb_sigmask. diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in index 3027ffa..14cf709 100644 --- a/gdb/gdbserver/config.in +++ b/gdb/gdbserver/config.in @@ -195,6 +195,9 @@ /* Have PTHREAD_PRIO_INHERIT. */ #undef HAVE_PTHREAD_PRIO_INHERIT +/* Define to 1 if you have the `pthread_setname_np' function. */ +#undef HAVE_PTHREAD_SETNAME_NP + /* Define to 1 if you have the `pthread_sigmask' function. */ #undef HAVE_PTHREAD_SIGMASK diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 8d34a6c..da17f8c 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -7725,12 +7725,13 @@ $as_echo "$gdb_cv_cxx_std_thread" >&6; } # This check must be here, while LIBS includes any necessary # threading library. - for ac_func in pthread_sigmask + for ac_func in pthread_sigmask pthread_setname_np do : - ac_fn_cxx_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" -if test "x$ac_cv_func_pthread_sigmask" = xyes; then : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_SIGMASK 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi diff --git a/gdb/gdbsupport/common.m4 b/gdb/gdbsupport/common.m4 index e993b20..4f2bb52 100644 --- a/gdb/gdbsupport/common.m4 +++ b/gdb/gdbsupport/common.m4 @@ -57,7 +57,7 @@ AC_DEFUN([GDB_AC_COMMON], [ # This check must be here, while LIBS includes any necessary # threading library. - AC_CHECK_FUNCS([pthread_sigmask]) + AC_CHECK_FUNCS([pthread_sigmask pthread_setname_np]) LIBS="$save_LIBS" CXXFLAGS="$save_CXXFLAGS" diff --git a/gdb/gdbsupport/thread-pool.c b/gdb/gdbsupport/thread-pool.c index 8282ea3..d19ae02 100644 --- a/gdb/gdbsupport/thread-pool.c +++ b/gdb/gdbsupport/thread-pool.c @@ -26,6 +26,19 @@ #include "gdbsupport/block-signals.h" #include <algorithm> +/* On the off chance that we have the pthread library on a Windows + host, but std::thread is not using it, avoid calling + pthread_setname_np on Windows. */ +#ifndef _WIN32 +#ifdef HAVE_PTHREAD_SETNAME_NP +#define USE_PTHREAD_SETNAME_NP +#endif +#endif + +#ifdef USE_PTHREAD_SETNAME_NP +#include <pthread.h> +#endif + namespace gdb { @@ -62,6 +75,9 @@ thread_pool::set_thread_count (size_t num_threads) for (size_t i = m_thread_count; i < num_threads; ++i) { std::thread thread (&thread_pool::thread_function, this); +#ifdef USE_PTHREAD_SETNAME_NP + pthread_setname_np (thread.native_handle (), "gdb worker"); +#endif thread.detach (); } } |