From c80825ff32ba805982ef5e66e4fa1a80e019d47d Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Sat, 2 Dec 2017 20:36:42 -0500 Subject: [PATCH] Remove usage of find_inferior in linux_resume Replace with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (linux_resume_one_thread): Return void, take parameter directly. (linux_resume): Use for_each_thread. --- gdb/gdbserver/ChangeLog | 6 ++++++ gdb/gdbserver/linux-low.c | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 1d88781cce8..61ba9bbc86c 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2017-12-02 Simon Marchi + + * linux-low.c (linux_resume_one_thread): Return void, take + parameter directly. + (linux_resume): Use for_each_thread. + 2017-12-02 Simon Marchi * linux-low.c (send_sigstop_callback): Return void, change diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 9725b4906c6..2760c6f121f 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -4923,15 +4923,14 @@ complete_ongoing_step_over (void) event to report, so we don't need to preserve any step requests; they should be re-issued if necessary. */ -static int -linux_resume_one_thread (thread_info *thread, void *arg) +static void +linux_resume_one_thread (thread_info *thread, bool leave_all_stopped) { struct lwp_info *lwp = get_thread_lwp (thread); - int leave_all_stopped = * (int *) arg; int leave_pending; if (lwp->resume == NULL) - return 0; + return; if (lwp->resume->kind == resume_stop) { @@ -4978,7 +4977,7 @@ linux_resume_one_thread (thread_info *thread, void *arg) /* For stop requests, we're done. */ lwp->resume = NULL; thread->last_status.kind = TARGET_WAITKIND_IGNORE; - return 0; + return; } /* If this thread which is about to be resumed has a pending status, @@ -5026,14 +5025,12 @@ linux_resume_one_thread (thread_info *thread, void *arg) thread->last_status.kind = TARGET_WAITKIND_IGNORE; lwp->resume = NULL; - return 0; } static void linux_resume (struct thread_resume *resume_info, size_t n) { struct thread_info *need_step_over = NULL; - int leave_all_stopped; if (debug_threads) { @@ -5065,7 +5062,7 @@ linux_resume (struct thread_resume *resume_info, size_t n) if (!any_pending && supports_breakpoints ()) need_step_over = find_thread (need_step_over_p); - leave_all_stopped = (need_step_over != NULL || any_pending); + bool leave_all_stopped = (need_step_over != NULL || any_pending); if (debug_threads) { @@ -5080,7 +5077,10 @@ linux_resume (struct thread_resume *resume_info, size_t n) /* Even if we're leaving threads stopped, queue all signals we'd otherwise deliver. */ - find_inferior (&all_threads, linux_resume_one_thread, &leave_all_stopped); + for_each_thread ([&] (thread_info *thread) + { + linux_resume_one_thread (thread, leave_all_stopped); + }); if (need_step_over) start_step_over (get_thread_lwp (need_step_over)); -- 2.30.2