diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2017-12-02 20:36:41 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2017-12-02 20:36:42 -0500 |
commit | df3e4dbe661e522cc63d3dab15c3974713fba4dd (patch) | |
tree | e36d9878da74b2c0d5133491910ded48891dade3 | |
parent | 5a6b0a41dfc9b860f285ddb3a1e518299f614cd3 (diff) | |
download | gdb-df3e4dbe661e522cc63d3dab15c3974713fba4dd.zip gdb-df3e4dbe661e522cc63d3dab15c3974713fba4dd.tar.gz gdb-df3e4dbe661e522cc63d3dab15c3974713fba4dd.tar.bz2 |
Remove usages of find_inferior in stop_all_lwps
Replace with for_each_thread.
gdb/gdbserver/ChangeLog:
* linux-low.c (send_sigstop_callback): Return void, change
parameter type. Rename to...
(send_sigstop): ... this.
(suspend_and_send_sigstop_callback): Return void, change parameter
type. Rename to...
(suspend_and_send_sigstop): ... this.
(stop_all_lwps): Use for_each_thread.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 28 |
2 files changed, 27 insertions, 11 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 88319ae..1d88781 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,15 @@ 2017-12-02 Simon Marchi <simon.marchi@polymtl.ca> + * linux-low.c (send_sigstop_callback): Return void, change + parameter type. Rename to... + (send_sigstop): ... this. + (suspend_and_send_sigstop_callback): Return void, change parameter + type. Rename to... + (suspend_and_send_sigstop): ... this. + (stop_all_lwps): Use for_each_thread. + +2017-12-02 Simon Marchi <simon.marchi@polymtl.ca> + * linux-low.c (lwp_running): Return bool, remove unused argument. (linux_stabilize_threads): Use find_thread. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 840bf69..9725b49 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -3933,36 +3933,35 @@ send_sigstop (struct lwp_info *lwp) kill_lwp (pid, SIGSTOP); } -static int -send_sigstop_callback (thread_info *thread, void *except) +static void +send_sigstop (thread_info *thread, lwp_info *except) { struct lwp_info *lwp = get_thread_lwp (thread); /* Ignore EXCEPT. */ if (lwp == except) - return 0; + return; if (lwp->stopped) - return 0; + return; send_sigstop (lwp); - return 0; } /* Increment the suspend count of an LWP, and stop it, if not stopped yet. */ -static int -suspend_and_send_sigstop_callback (thread_info *thread, void *except) +static void +suspend_and_send_sigstop (thread_info *thread, lwp_info *except) { struct lwp_info *lwp = get_thread_lwp (thread); /* Ignore EXCEPT. */ if (lwp == except) - return 0; + return; lwp_suspended_inc (lwp); - return send_sigstop_callback (thread, except); + send_sigstop (thread, except); } static void @@ -4157,9 +4156,16 @@ stop_all_lwps (int suspend, struct lwp_info *except) : STOPPING_THREADS); if (suspend) - find_inferior (&all_threads, suspend_and_send_sigstop_callback, except); + for_each_thread ([&] (thread_info *thread) + { + suspend_and_send_sigstop (thread, except); + }); else - find_inferior (&all_threads, send_sigstop_callback, except); + for_each_thread ([&] (thread_info *thread) + { + send_sigstop (thread, except); + }); + wait_for_sigstop (); stopping_threads = NOT_STOPPING_THREADS; |