From df3e4dbe661e522cc63d3dab15c3974713fba4dd Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Sat, 2 Dec 2017 20:36:41 -0500 Subject: [PATCH] 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. --- gdb/gdbserver/ChangeLog | 10 ++++++++++ gdb/gdbserver/linux-low.c | 28 +++++++++++++++++----------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 88319ae209f..1d88781cce8 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,13 @@ +2017-12-02 Simon Marchi + + * 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 * linux-low.c (lwp_running): Return bool, remove unused diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 840bf694b76..9725b4906c6 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; -- 2.30.2