diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2017-10-21 12:20:21 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2017-10-21 12:20:21 -0400 |
commit | 4d3bb80e5db40cd2308157db3c446f35ae97a915 (patch) | |
tree | 886f563e207d3cedc783d48de60126f045dd8c94 /gdb/gdbserver/inferiors.c | |
parent | a664f67e50eff30198097d51cec0ec4690abb2a1 (diff) | |
download | gdb-4d3bb80e5db40cd2308157db3c446f35ae97a915.zip gdb-4d3bb80e5db40cd2308157db3c446f35ae97a915.tar.gz gdb-4d3bb80e5db40cd2308157db3c446f35ae97a915.tar.bz2 |
Add overloads of for_each_thread/find_thread that filter on pid
It happens often that we want to iterate or find threads restricted to a
given pid. I think it's worth having an overload to help with this.
Right now there is a single user of each of the find_thread and
for_each_thread overload, but as we replace the usages of find_inferior
with for_each_thread/find_thread, more usages will pop up.
gdb/gdbserver/ChangeLog:
* gdbthread.h (find_thread, for_each_thread): New functions.
* inferiors.c (thread_of_pid): Remove.
(find_any_thread_of_pid): Use find_thread.
* linux-low.c (num_lwps): Use for_each_thread.
Diffstat (limited to 'gdb/gdbserver/inferiors.c')
-rw-r--r-- | gdb/gdbserver/inferiors.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c index 564121f..a0ece4d 100644 --- a/gdb/gdbserver/inferiors.c +++ b/gdb/gdbserver/inferiors.c @@ -132,23 +132,14 @@ find_thread_process (const struct process_info *const process) return find_any_thread_of_pid (process->pid); } -/* Helper for find_any_thread_of_pid. Returns true if a thread - matches a PID. */ - -static int -thread_of_pid (thread_info *entry, void *pid_p) -{ - int pid = *(int *) pid_p; - - return (ptid_get_pid (entry->id) == pid); -} - /* See gdbthread.h. */ struct thread_info * find_any_thread_of_pid (int pid) { - return find_inferior (&all_threads, thread_of_pid, &pid); + return find_thread (pid, [] (thread_info *thread) { + return true; + }); } static void |