forked from Imagelibrary/binutils-gdb
gdb: make inferior::clear_thread_list always silent
After this commit:
commit a78ef87574
Date: Wed Jun 22 18:10:00 2022 +0100
Always emit =thread-exited notifications, even if silent
The function mi_interp::on_thread_exited (or mi_thread_exit as the
function was called back then) no longer makes use of the "silent"
parameter.
As a result there is no difference between inferior::clear_thread_list
with silent true or false, because:
- None of the interpreter ::on_thread_exited functions rely on the
silent parameter, and
- None of GDB's thread_exit observers rely on the silent parameter
either.
This commit removes the silent parameter from
inferior::clear_thread_list, and makes the function always silent.
This commit was originally part of a larger series:
https://inbox.sourceware.org/gdb-patches/20221212203101.1034916-1-pedro@palves.net/
But didn't really need to be part of that series. I had an interest
in seeing this patch merged:
https://inbox.sourceware.org/gdb-patches/20221212203101.1034916-31-pedro@palves.net/
Which also didn't really need to be part of the larger series, but
does depend, at least a little, on this commit. In order to get the
fix I'm interested in merged quicker, I (Andrew Burgess) have rebased
this commit outside of the original series. Any bugs introduced while
splitting this patch out and rebasing, are entirely my own.
There should be no user visible changes after this commit.
Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
committed by
Andrew Burgess
parent
951dbdfeec
commit
604fe2d97f
@@ -247,13 +247,13 @@ inferior::find_thread (ptid_t ptid)
|
||||
/* See inferior.h. */
|
||||
|
||||
void
|
||||
inferior::clear_thread_list (bool silent)
|
||||
inferior::clear_thread_list ()
|
||||
{
|
||||
thread_list.clear_and_dispose ([=] (thread_info *thr)
|
||||
{
|
||||
threads_debug_printf ("deleting thread %s, silent = %d",
|
||||
thr->ptid.to_string ().c_str (), silent);
|
||||
set_thread_exited (thr, silent);
|
||||
threads_debug_printf ("deleting thread %s",
|
||||
thr->ptid.to_string ().c_str ());
|
||||
set_thread_exited (thr, true /* silent */);
|
||||
if (thr->deletable ())
|
||||
delete thr;
|
||||
});
|
||||
@@ -272,7 +272,7 @@ notify_inferior_removed (inferior *inf)
|
||||
void
|
||||
delete_inferior (struct inferior *inf)
|
||||
{
|
||||
inf->clear_thread_list (true);
|
||||
inf->clear_thread_list ();
|
||||
|
||||
auto it = inferior_list.iterator_to (*inf);
|
||||
inferior_list.erase (it);
|
||||
@@ -307,7 +307,7 @@ notify_inferior_disappeared (inferior *inf)
|
||||
static void
|
||||
exit_inferior_1 (struct inferior *inf, int silent)
|
||||
{
|
||||
inf->clear_thread_list (silent);
|
||||
inf->clear_thread_list ();
|
||||
|
||||
notify_inferior_disappeared (inf);
|
||||
|
||||
|
||||
@@ -496,9 +496,8 @@ public:
|
||||
/* Find (non-exited) thread PTID of this inferior. */
|
||||
thread_info *find_thread (ptid_t ptid);
|
||||
|
||||
/* Delete all threads in the thread list. If SILENT, exit threads
|
||||
silently. */
|
||||
void clear_thread_list (bool silent);
|
||||
/* Delete all threads in the thread list, silently. */
|
||||
void clear_thread_list ();
|
||||
|
||||
/* Continuations-related methods. A continuation is an std::function
|
||||
to be called to finish the execution of a command when running
|
||||
|
||||
@@ -246,7 +246,7 @@ init_thread_list (void)
|
||||
highest_thread_num = 0;
|
||||
|
||||
for (inferior *inf : all_inferiors ())
|
||||
inf->clear_thread_list (true);
|
||||
inf->clear_thread_list ();
|
||||
}
|
||||
|
||||
/* Allocate a new thread of inferior INF with target id PTID and add
|
||||
|
||||
Reference in New Issue
Block a user