aboutsummaryrefslogtreecommitdiff
path: root/gdb/aix-thread.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2009-05-20 18:21:20 +0000
committerJoel Brobecker <brobecker@gnat.com>2009-05-20 18:21:20 +0000
commit77f0be4ee17f3cf819634c70477e9f1db3f6dda9 (patch)
tree4eb8e22551d9845ad234a8a3fc5599fadce79cf8 /gdb/aix-thread.c
parent164e7efc2373ebd27d2f1be59b9a3aeb98f00335 (diff)
downloadgdb-77f0be4ee17f3cf819634c70477e9f1db3f6dda9.zip
gdb-77f0be4ee17f3cf819634c70477e9f1db3f6dda9.tar.gz
gdb-77f0be4ee17f3cf819634c70477e9f1db3f6dda9.tar.bz2
* aix-thread.c (giter_count): Do not count the main thread.
(giter_accum): Do not include the main thread.
Diffstat (limited to 'gdb/aix-thread.c')
-rw-r--r--gdb/aix-thread.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index 1eeeadb..35103f5 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -570,22 +570,36 @@ pcmp (const void *p1v, const void *p2v)
return p1->pthid < p2->pthid ? -1 : p1->pthid > p2->pthid;
}
-/* iterate_over_threads() callback for counting GDB threads. */
+/* iterate_over_threads() callback for counting GDB threads.
+
+ Do not count the main thread (whose tid is zero). This matches
+ the list of threads provided by the pthreaddebug library, which
+ does not include that main thread either, and thus allows us
+ to compare the two lists. */
static int
giter_count (struct thread_info *thread, void *countp)
{
- (*(int *) countp)++;
+ if (PD_TID (thread->ptid))
+ (*(int *) countp)++;
return 0;
}
-/* iterate_over_threads() callback for accumulating GDB thread pids. */
+/* iterate_over_threads() callback for accumulating GDB thread pids.
+
+ Do not include the main thread (whose tid is zero). This matches
+ the list of threads provided by the pthreaddebug library, which
+ does not include that main thread either, and thus allows us
+ to compare the two lists. */
static int
giter_accum (struct thread_info *thread, void *bufp)
{
- **(struct thread_info ***) bufp = thread;
- (*(struct thread_info ***) bufp)++;
+ if (PD_TID (thread->ptid))
+ {
+ **(struct thread_info ***) bufp = thread;
+ (*(struct thread_info ***) bufp)++;
+ }
return 0;
}