+2017-12-02 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * linux-low.c (struct counter): Remove.
+ (second_thread_of_pid_p): Remove.
+ (last_thread_of_process_p): Use find_thread.
+
2017-12-02 Simon Marchi <simon.marchi@polymtl.ca>
* inferiors.c (find_inferior_in_random): Remove.
return 0;
}
-struct counter
-{
- int pid;
- int count;
-};
-
static int
-second_thread_of_pid_p (thread_info *thread, void *args)
+last_thread_of_process_p (int pid)
{
- struct counter *counter = (struct counter *) args;
+ bool seen_one = false;
- if (thread->id.pid () == counter->pid)
+ thread_info *thread = find_thread (pid, [&] (thread_info *thread)
{
- if (++counter->count > 1)
- return 1;
- }
-
- return 0;
-}
-
-static int
-last_thread_of_process_p (int pid)
-{
- struct counter counter = { pid , 0 };
+ if (!seen_one)
+ {
+ /* This is the first thread of this process we see. */
+ seen_one = true;
+ return false;
+ }
+ else
+ {
+ /* This is the second thread of this process we see. */
+ return true;
+ }
+ });
- return (find_inferior (&all_threads,
- second_thread_of_pid_p, &counter) == NULL);
+ return thread == NULL;
}
/* Kill LWP. */