mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 10:35:12 +08:00
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.
This commit is contained in:
parent
83e1b6c13a
commit
e4eb0dec0b
@ -1,3 +1,9 @@
|
||||
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.
|
||||
|
@ -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)
|
||||
{
|
||||
struct counter *counter = (struct counter *) args;
|
||||
|
||||
if (thread->id.pid () == counter->pid)
|
||||
{
|
||||
if (++counter->count > 1)
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
last_thread_of_process_p (int pid)
|
||||
{
|
||||
struct counter counter = { pid , 0 };
|
||||
bool seen_one = false;
|
||||
|
||||
return (find_inferior (&all_threads,
|
||||
second_thread_of_pid_p, &counter) == NULL);
|
||||
thread_info *thread = find_thread (pid, [&] (thread_info *thread)
|
||||
{
|
||||
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 thread == NULL;
|
||||
}
|
||||
|
||||
/* Kill LWP. */
|
||||
|
Loading…
Reference in New Issue
Block a user