From e4eb0dec0b9219a27ea6b9769f098fff34612779 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Sat, 2 Dec 2017 20:36:36 -0500 Subject: Remove usage of find_inferior in last_thread_of_process_p Replace it with find_thread. I also modified the code a bit to use a lambda and a boolean. gdb/gdbserver/ChangeLog: * linux-low.c (struct counter): Remove. (second_thread_of_pid_p): Remove. (last_thread_of_process_p): Use find_thread. --- gdb/gdbserver/linux-low.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'gdb/gdbserver/linux-low.c') diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index ac51d11..2e63468 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1241,33 +1241,27 @@ linux_attach (unsigned long pid) 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. */ -- cgit v1.1