Remove usage of find_inferior when calling kill_one_lwp_callback
authorSimon Marchi <simon.marchi@ericsson.com>
Mon, 20 Nov 2017 03:23:28 +0000 (22:23 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Mon, 20 Nov 2017 03:23:28 +0000 (22:23 -0500)
Replace with for_each_thread.

gdb/gdbserver/ChangeLog:

* linux-low.c (kill_one_lwp_callback): Return void, take
argument directly, don't filter on pid.
(linux_kill): Use for_each_thread.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c

index 26fd0624e895094470c64ae2f1e8551769de2763..d891b2d49fe83209f78c4a21adf570dc05c0e52f 100644 (file)
@@ -1,3 +1,9 @@
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * linux-low.c (kill_one_lwp_callback): Return void, take
+       argument directly, don't filter on pid.
+       (linux_kill): Use for_each_thread.
+
 2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
 
        * linux-low.c (need_step_over_p): Return bool, remove dummy
index 33eb4f8cd292c889ae591c44860d8017f53e7860..274263a9470c14a54c6c610c946e23c07ba585c9 100644 (file)
@@ -1356,17 +1356,13 @@ kill_wait_lwp (struct lwp_info *lwp)
     perror_with_name ("kill_wait_lwp");
 }
 
-/* Callback for `find_inferior'.  Kills an lwp of a given process,
+/* Callback for `for_each_thread'.  Kills an lwp of a given process,
    except the leader.  */
 
-static int
-kill_one_lwp_callback (thread_info *thread, void *args)
+static void
+kill_one_lwp_callback (thread_info *thread, int pid)
 {
   struct lwp_info *lwp = get_thread_lwp (thread);
-  int pid = * (int *) args;
-
-  if (thread->id.pid () != pid)
-    return 0;
 
   /* We avoid killing the first thread here, because of a Linux kernel (at
      least 2.6.0-test7 through 2.6.8-rc4) bug; if we kill the parent before
@@ -1378,11 +1374,10 @@ kill_one_lwp_callback (thread_info *thread, void *args)
       if (debug_threads)
        debug_printf ("lkop: is last of process %s\n",
                      target_pid_to_str (thread->id));
-      return 0;
+      return;
     }
 
   kill_wait_lwp (lwp);
-  return 0;
 }
 
 static int
@@ -1399,7 +1394,10 @@ linux_kill (int pid)
      first, as PTRACE_KILL will not work otherwise.  */
   stop_all_lwps (0, NULL);
 
-  find_inferior (&all_threads, kill_one_lwp_callback , &pid);
+  for_each_thread (pid, [&] (thread_info *thread)
+    {
+      kill_one_lwp_callback (thread, pid);
+    });
 
   /* See the comment in linux_kill_one_lwp.  We did not kill the first
      thread in the list, so do so now.  */