From 77f0be4ee17f3cf819634c70477e9f1db3f6dda9 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Wed, 20 May 2009 18:21:20 +0000 Subject: [PATCH] * aix-thread.c (giter_count): Do not count the main thread. (giter_accum): Do not include the main thread. --- gdb/ChangeLog | 5 +++++ gdb/aix-thread.c | 24 +++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3eb2ecde8db..beeb7074813 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-05-20 Joel Brobecker + + * aix-thread.c (giter_count): Do not count the main thread. + (giter_accum): Do not include the main thread. + 2009-05-19 Jan Kratochvil Remove the PROT parameter from openp. 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; } -- 2.30.2