diff options
Diffstat (limited to 'gdb/testsuite/gdb.python/py-evthreads.c')
-rw-r--r-- | gdb/testsuite/gdb.python/py-evthreads.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/gdb/testsuite/gdb.python/py-evthreads.c b/gdb/testsuite/gdb.python/py-evthreads.c index 1464ce6..65bce44 100644 --- a/gdb/testsuite/gdb.python/py-evthreads.c +++ b/gdb/testsuite/gdb.python/py-evthreads.c @@ -19,37 +19,35 @@ #include <stdio.h> #include <pthread.h> #include <unistd.h> +#include <signal.h> pthread_t thread2_id; pthread_t thread3_id; void* thread3 (void* d) { - int count3 = 0; - count3++; - - int *bad; - *bad = 1; + raise (SIGUSR1); return NULL; } void* thread2 (void* d) { - int count2 = 0; - count2++; + /* Do not quit thread3 asynchronously wrt thread2 stop - wait first on + thread3_id to stop. It would complicate testcase receiption of the + events. */ + + pthread_create (&thread3_id, NULL, thread3, NULL); pthread_join (thread3_id, NULL); + return NULL; } -int main (){ - - pthread_create (&thread2_id, NULL, thread2, NULL); - pthread_create (&thread3_id, NULL, thread3, NULL); +int main (void) +{ + /* Use single line to not to race whether `thread2' breakpoint or `next' over + pthread_create will stop first. */ - int count1 = 0; // stop1 - count1++; + pthread_create (&thread2_id, NULL, thread2, NULL); pthread_join (thread2_id, NULL); - pthread_join (thread2_id, NULL); - pthread_join (thread3_id, NULL); return 12; } |