This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Remove for_each_inferior
- From: Simon Marchi <simark at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 3 Dec 2017 01:49:40 -0000
- Subject: [binutils-gdb] Remove for_each_inferior
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f004534791145669d7765f8122e48f21e1deeb94
commit f004534791145669d7765f8122e48f21e1deeb94
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Sat Dec 2 20:37:53 2017 -0500
Remove for_each_inferior
This patch removes for_each_inferior, replacing all its usages with
for_each_thread.
gdb/gdbserver/ChangeLog:
* inferiors.c (for_each_inferior): Remove.
(clear_inferiors): Use for_each_thread.
* inferiors.h (for_each_inferior): Remove.
* linux-low.c (linux_wait_for_event_filtered): Use
for_each_thread.
(linux_stabilize_threads): Likewise.
* regcache.c (regcache_release): Likewise.
* server.c (gdb_wants_all_threads_stopped): Likewise.
(clear_pending_status_callback): Remove.
(handle_status): Use for_each_thread.
(captured_main): Likewise.
* win32-low.c (child_init_thread_list): Likewise.
(win32_clear_inferiors): Likewise.
(fake_breakpoint_event): Likewise.
Diff:
---
gdb/gdbserver/ChangeLog | 17 +++++++++++++++++
gdb/gdbserver/inferiors.c | 13 +------------
gdb/gdbserver/inferiors.h | 2 --
gdb/gdbserver/linux-low.c | 4 ++--
gdb/gdbserver/regcache.c | 2 +-
gdb/gdbserver/server.c | 23 ++++++++---------------
gdb/gdbserver/win32-low.c | 6 +++---
7 files changed, 32 insertions(+), 35 deletions(-)
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 882aff4..e852020 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,22 @@
2017-12-02 Simon Marchi <simon.marchi@polymtl.ca>
+ * inferiors.c (for_each_inferior): Remove.
+ (clear_inferiors): Use for_each_thread.
+ * inferiors.h (for_each_inferior): Remove.
+ * linux-low.c (linux_wait_for_event_filtered): Use
+ for_each_thread.
+ (linux_stabilize_threads): Likewise.
+ * regcache.c (regcache_release): Likewise.
+ * server.c (gdb_wants_all_threads_stopped): Likewise.
+ (clear_pending_status_callback): Remove.
+ (handle_status): Use for_each_thread.
+ (captured_main): Likewise.
+ * win32-low.c (child_init_thread_list): Likewise.
+ (win32_clear_inferiors): Likewise.
+ (fake_breakpoint_event): Likewise.
+
+2017-12-02 Simon Marchi <simon.marchi@polymtl.ca>
+
* inferiors.h (find_inferior): Remove.
* inferiors.c (find_inferior): Remove.
diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c
index 47cc13a..093080d 100644
--- a/gdb/gdbserver/inferiors.c
+++ b/gdb/gdbserver/inferiors.c
@@ -31,17 +31,6 @@ struct thread_info *current_thread;
static const char *current_inferior_cwd = NULL;
void
-for_each_inferior (std::list<thread_info *> *thread_list,
- void (*action) (thread_info *))
-{
- gdb_assert (thread_list == &all_threads);
-
- for_each_thread ([&] (thread_info *thread) {
- action (thread);
- });
-}
-
-void
for_each_inferior_with_data (std::list<thread_info *> *thread_list,
void (*action) (thread_info *, void *),
void *data)
@@ -151,7 +140,7 @@ set_thread_regcache_data (struct thread_info *thread, struct regcache *data)
void
clear_inferiors (void)
{
- for_each_inferior (&all_threads, free_one_thread);
+ for_each_thread (free_one_thread);
all_threads.clear ();
clear_dlls ();
diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h
index 2aab846..030d9c3 100644
--- a/gdb/gdbserver/inferiors.h
+++ b/gdb/gdbserver/inferiors.h
@@ -140,8 +140,6 @@ int have_attached_inferiors_p (void);
void clear_inferiors (void);
-void for_each_inferior (std::list<thread_info *> *thread_list,
- void (*action) (thread_info *));
void for_each_inferior_with_data (std::list<thread_info *> *thread_list,
void (*action) (thread_info *, void *),
void *data);
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index d5449c4..f6a52d5 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -2736,7 +2736,7 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid,
/* Now that we've pulled all events out of the kernel, resume
LWPs that don't have an interesting event to report. */
if (stopping_threads == NOT_STOPPING_THREADS)
- for_each_inferior (&all_threads, resume_stopped_resumed_lwps);
+ for_each_thread (resume_stopped_resumed_lwps);
/* ... and find an LWP with a status to report to the core, if
any. */
@@ -2972,7 +2972,7 @@ linux_stabilize_threads (void)
stabilizing_threads = 1;
/* Kick 'em all. */
- for_each_inferior (&all_threads, move_out_of_jump_pad_callback);
+ for_each_thread (move_out_of_jump_pad_callback);
/* Loop until all are stopped out of the jump pads. */
while (find_thread (lwp_running) != NULL)
diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c
index 5f71523..6a27042 100644
--- a/gdb/gdbserver/regcache.c
+++ b/gdb/gdbserver/regcache.c
@@ -281,7 +281,7 @@ void
regcache_release (void)
{
/* Flush and release all pre-existing register caches. */
- for_each_inferior (&all_threads, free_register_cache_thread);
+ for_each_thread (free_register_cache_thread);
}
#endif
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 26c4a01..cfc4a12 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -3216,7 +3216,7 @@ myresume (char *own_buf, int step, int sig)
resume (resume_info, n);
}
-/* Callback for for_each_inferior. Make a new stop reply for each
+/* Callback for for_each_thread. Make a new stop reply for each
stopped thread. */
static void
@@ -3281,19 +3281,10 @@ gdb_wants_thread_stopped (thread_info *thread)
static void
gdb_wants_all_threads_stopped (void)
{
- for_each_inferior (&all_threads, gdb_wants_thread_stopped);
+ for_each_thread (gdb_wants_thread_stopped);
}
-/* Callback for for_each_inferior. Clear the thread's pending status
- flag. */
-
-static void
-clear_pending_status_callback (thread_info *thread)
-{
- thread->status_pending_p = 0;
-}
-
-/* Callback for for_each_inferior. If the thread is stopped with an
+/* Callback for for_each_thread. If the thread is stopped with an
interesting event, mark it as having a pending event. */
static void
@@ -3348,7 +3339,7 @@ handle_status (char *own_buf)
reporting now pending. They'll be reported the next time the
threads are resumed. Start by marking all interesting events
as pending. */
- for_each_inferior (&all_threads, set_pending_status_callback);
+ for_each_thread (set_pending_status_callback);
/* Prefer the last thread that reported an event to GDB (even if
that was a GDB_SIGNAL_TRAP). */
@@ -3869,8 +3860,10 @@ captured_main (int argc, char *argv[])
(by the same GDB instance or another) will refresh all its
state from scratch. */
discard_queued_stop_replies (minus_one_ptid);
- for_each_inferior (&all_threads,
- clear_pending_status_callback);
+ for_each_thread ([] (thread_info *thread)
+ {
+ thread->status_pending_p = 0;
+ });
if (tracing)
{
diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c
index fecab84..be671a6 100644
--- a/gdb/gdbserver/win32-low.c
+++ b/gdb/gdbserver/win32-low.c
@@ -339,7 +339,7 @@ child_xfer_memory (CORE_ADDR memaddr, char *our, int len,
static void
child_init_thread_list (void)
{
- for_each_inferior (&all_threads, delete_thread_info);
+ for_each_thread (delete_thread_info);
}
/* Zero during the child initialization phase, and nonzero otherwise. */
@@ -793,7 +793,7 @@ win32_clear_inferiors (void)
if (current_process_handle != NULL)
CloseHandle (current_process_handle);
- for_each_inferior (&all_threads, delete_thread_info);
+ for_each_thread (delete_thread_info);
clear_inferiors ();
}
@@ -1362,7 +1362,7 @@ fake_breakpoint_event (void)
current_event.u.Exception.ExceptionRecord.ExceptionCode
= EXCEPTION_BREAKPOINT;
- for_each_inferior (&all_threads, suspend_one_thread);
+ for_each_thread (suspend_one_thread);
}
#ifdef _WIN32_WCE