Remove usage of find_inferior in linux_resume
authorSimon Marchi <simon.marchi@polymtl.ca>
Sun, 3 Dec 2017 01:36:42 +0000 (20:36 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Sun, 3 Dec 2017 01:36:42 +0000 (20:36 -0500)
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
gdb/gdbserver/linux-low.c

index 1d88781cce84a2304c8fcda18c964984aaf950c2..61ba9bbc86cd3153a20fe471948621248dc49db1 100644 (file)
@@ -1,3 +1,9 @@
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * linux-low.c (linux_resume_one_thread): Return void, take
+       parameter directly.
+       (linux_resume): Use for_each_thread.
+
 2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * linux-low.c (send_sigstop_callback): Return void, change
index 9725b4906c691559c33a476c2713de681f938935..2760c6f121fecec98e4397be3fa2a961a30c5d68 100644 (file)
@@ -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));