diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2017-12-02 20:36:36 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2017-12-02 20:36:36 -0500 |
commit | e4eb0dec0b9219a27ea6b9769f098fff34612779 (patch) | |
tree | 4be79db80558ea13f54e438d174570785a87707a /gdb | |
parent | 83e1b6c13a285b4e1e852e1647667f09bb26892b (diff) | |
download | gdb-e4eb0dec0b9219a27ea6b9769f098fff34612779.zip gdb-e4eb0dec0b9219a27ea6b9769f098fff34612779.tar.gz gdb-e4eb0dec0b9219a27ea6b9769f098fff34612779.tar.bz2 |
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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 38 |
2 files changed, 22 insertions, 22 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 62ff8e6..f4f77aa 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,11 @@ 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. * inferiors.h (find_inferior_in_random): Remove. * linux-low.c (status_pending_p_callback): Return bool, accept 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. */ |