mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
gdb, multi-target: pass a target argument to delete_exited_threads
Similar to the parent commit, delete_exited_threads is also mostly used in the context of a particular target. Pass that target as a parameter and skip other targets. There seems to be two cases where we actually would want to iterate all targets. One use is in inferior_appeared (inferior.c) and the other is in thread_select (thread.c). To handle these cases, allow the argument to be nullptr. Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
parent
076b132589
commit
9de228e0cb
6 changed files with 10 additions and 10 deletions
|
|
@ -1004,7 +1004,7 @@ fbsd_nat_target::update_thread_list ()
|
|||
#ifdef PT_LWP_EVENTS
|
||||
/* With support for thread events, threads are added/deleted from the
|
||||
list as events are reported, so just try deleting exited threads. */
|
||||
delete_exited_threads ();
|
||||
delete_exited_threads (this);
|
||||
#else
|
||||
prune_threads (this);
|
||||
|
||||
|
|
|
|||
|
|
@ -983,9 +983,9 @@ extern void update_thread_list (void);
|
|||
extern void prune_threads (process_stratum_target *target);
|
||||
|
||||
/* Delete threads marked THREAD_EXITED. Unlike prune_threads, this
|
||||
does not consult the target about whether the thread is alive right
|
||||
now. */
|
||||
extern void delete_exited_threads (void);
|
||||
does not consult TARGET about whether the thread is alive right
|
||||
now. If TARGET is nullptr, operate on all targets. */
|
||||
extern void delete_exited_threads (process_stratum_target *target);
|
||||
|
||||
/* Return true if PC is in the stepping range of THREAD. */
|
||||
|
||||
|
|
|
|||
|
|
@ -368,7 +368,7 @@ inferior_appeared (struct inferior *inf, int pid)
|
|||
{
|
||||
/* If this is the first inferior with threads, reset the global
|
||||
thread id. */
|
||||
delete_exited_threads ();
|
||||
delete_exited_threads (nullptr);
|
||||
if (!any_thread_p ())
|
||||
init_thread_list ();
|
||||
|
||||
|
|
|
|||
|
|
@ -3967,7 +3967,7 @@ linux_nat_target::update_thread_list ()
|
|||
/* We add/delete threads from the list as clone/exit events are
|
||||
processed, so just try deleting exited threads still in the
|
||||
thread list. */
|
||||
delete_exited_threads ();
|
||||
delete_exited_threads (this);
|
||||
|
||||
/* Update the processor core that each lwp/thread was last seen
|
||||
running on. */
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ nbsd_nat_target::post_attach (int pid)
|
|||
void
|
||||
nbsd_nat_target::update_thread_list ()
|
||||
{
|
||||
delete_exited_threads ();
|
||||
delete_exited_threads (this);
|
||||
}
|
||||
|
||||
/* Convert PTID to a string. */
|
||||
|
|
|
|||
|
|
@ -779,9 +779,9 @@ prune_threads (process_stratum_target *target)
|
|||
/* See gdbthreads.h. */
|
||||
|
||||
void
|
||||
delete_exited_threads (void)
|
||||
delete_exited_threads (process_stratum_target *target)
|
||||
{
|
||||
for (thread_info &tp : all_threads_safe ())
|
||||
for (thread_info &tp : all_threads_safe (target))
|
||||
if (tp.state () == THREAD_EXITED)
|
||||
delete_thread (&tp);
|
||||
}
|
||||
|
|
@ -2112,7 +2112,7 @@ thread_select (const char *tidstr, thread_info *tp)
|
|||
|
||||
/* Since the current thread may have changed, see if there is any
|
||||
exited thread we can now delete. */
|
||||
delete_exited_threads ();
|
||||
delete_exited_threads (nullptr);
|
||||
}
|
||||
|
||||
/* Print thread and frame switch command response. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue