Revert "Delete delete_thread_silent"
authorPedro Alves <pedro@palves.net>
Fri, 24 Jun 2022 16:20:16 +0000 (17:20 +0100)
committerPedro Alves <pedro@palves.net>
Fri, 24 Jun 2022 16:20:16 +0000 (17:20 +0100)
Turns out we'll be gaining a new use of this function very soon, the
incoming AMDGPU port needs it.  Let's add it back, as it isn't really
hurting anything.

This reverts commit 39b8a8090ed7e8967ceca3655aa5f3a2ae91219d.

gdb/gdbthread.h
gdb/thread.c

index 1f17ad7d9e7145aa0f97446d20bc848d000ad9bc..1a33eb612213648359fb287deeea54c80b4ade56 100644 (file)
@@ -623,6 +623,10 @@ extern struct thread_info *add_thread_with_info (process_stratum_target *targ,
    as exited and do the notification.  */
 extern void delete_thread (struct thread_info *thread);
 
+/* Like delete_thread, but be quiet about it.  Used when the process
+   this thread belonged to has already exited, for example.  */
+extern void delete_thread_silent (struct thread_info *thread);
+
 /* Mark the thread exited, but don't delete it or remove it from the
    inferior thread list.  */
 extern void set_thread_exited (thread_info *tp, bool silent);
index f0ad82e76d794e65418cd103763a9d5a55f45df3..378c5ee2d133ea17eef42c8d9041fc260c424fc0 100644 (file)
@@ -450,16 +450,20 @@ global_thread_step_over_chain_remove (struct thread_info *tp)
   global_thread_step_over_list.erase (it);
 }
 
-/* See gdbthread.h.  */
+/* Delete the thread referenced by THR.  If SILENT, don't notify
+   the observer of this exit.
+   
+   THR must not be NULL or a failed assertion will be raised.  */
 
-void
-delete_thread (thread_info *thr)
+static void
+delete_thread_1 (thread_info *thr, bool silent)
 {
   gdb_assert (thr != nullptr);
 
-  threads_debug_printf ("deleting thread %s", thr->ptid.to_string ().c_str ());
+  threads_debug_printf ("deleting thread %s, silent = %d",
+                       thr->ptid.to_string ().c_str (), silent);
 
-  set_thread_exited (thr, false);
+  set_thread_exited (thr, silent);
 
   if (!thr->deletable ())
     {
@@ -473,6 +477,20 @@ delete_thread (thread_info *thr)
   delete thr;
 }
 
+/* See gdbthread.h.  */
+
+void
+delete_thread (thread_info *thread)
+{
+  delete_thread_1 (thread, false /* not silent */);
+}
+
+void
+delete_thread_silent (thread_info *thread)
+{
+  delete_thread_1 (thread, true /* silent */);
+}
+
 struct thread_info *
 find_thread_global_id (int global_id)
 {