Fix the cast used to prevent compile time warning about an always false test.
[deliverable/binutils-gdb.git] / gdb / maint.c
index ce59ef6cca4926168a2f16ae18bb26bf1766e358..fcb9f4efb5eb874dd9e4faa7b45709108bc65746 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for GDB maintenance commands.
 
-   Copyright (C) 1992-2019 Free Software Foundation, Inc.
+   Copyright (C) 1992-2020 Free Software Foundation, Inc.
 
    Written by Fred Fish at Cygnus Support.
 
 #include "cli/cli-setshow.h"
 #include "cli/cli-cmds.h"
 
+#if CXX_STD_THREAD
+#include "gdbsupport/thread-pool.h"
+#endif
+
 static void maintenance_do_deprecate (const char *, int);
 
 /* Access the maintenance subcommands.  */
@@ -585,7 +589,7 @@ maintenance_translate_address (const char *arg, int from_tty)
          gdb_assert (sect->objfile && objfile_name (sect->objfile));
          obj_name = objfile_name (sect->objfile);
 
-         if (MULTI_OBJFILE_P ())
+         if (current_program_space->multi_objfile_p ())
            printf_filtered (_("%s + %s in section %s of %s\n"),
                             symbol_name, symbol_offset,
                             section_name, obj_name);
@@ -840,6 +844,30 @@ maintenance_set_profile_cmd (const char *args, int from_tty,
   error (_("Profiling support is not available on this system."));
 }
 #endif
+
+static int n_worker_threads = -1;
+
+/* Update the thread pool for the desired number of threads.  */
+static void
+update_thread_pool_size ()
+{
+#if CXX_STD_THREAD
+  int n_threads = n_worker_threads;
+
+  if (n_threads < 0)
+    n_threads = std::thread::hardware_concurrency ();
+
+  gdb::thread_pool::g_thread_pool->set_thread_count (n_threads);
+#endif
+}
+
+static void
+maintenance_set_worker_threads (const char *args, int from_tty,
+                               struct cmd_list_element *c)
+{
+  update_thread_pool_size ();
+}
+
 \f
 /* If true, display time usage both at startup and for each command.  */
 
@@ -1313,4 +1341,17 @@ When enabled GDB is profiled."),
                           show_maintenance_profile_p,
                           &maintenance_set_cmdlist,
                           &maintenance_show_cmdlist);
+
+  add_setshow_zuinteger_unlimited_cmd ("worker-threads",
+                                      class_maintenance,
+                                      &n_worker_threads, _("\
+Set the number of worker threads GDB can use."), _("\
+Show the number of worker threads GDB can use."), _("\
+GDB may use multiple threads to speed up certain CPU-intensive operations,\n\
+such as demangling symbol names."),
+                                      maintenance_set_worker_threads, NULL,
+                                      &maintenance_set_cmdlist,
+                                      &maintenance_show_cmdlist);
+
+  update_thread_pool_size ();
 }
This page took 0.02814 seconds and 4 git commands to generate.