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.
This commit is contained in:
Simon Marchi 2017-12-02 20:36:41 -05:00
parent 5a6b0a41df
commit df3e4dbe66
2 changed files with 27 additions and 11 deletions

View File

@ -1,3 +1,13 @@
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

View File

@ -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;