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:
parent
5a6b0a41df
commit
df3e4dbe66
2 changed files with 27 additions and 11 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue