summaryrefslogtreecommitdiff
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
commit700517c0ddb4006f11c44c0a82c5d5ba214c2044 (patch)
treef4d3a949e0294b6d37542cf3fad86c9cab478bf0 /gdb/aix-thread.c
parent4a3198b487dfe3e38bafe7f52ed6388f437f953d (diff)
downloadgdb-700517c0ddb4006f11c44c0a82c5d5ba214c2044.tar.gz
* 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 1eeeadb6d4f..35103f59ff7 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;
}