aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.python/py-evthreads.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.python/py-evthreads.c')
-rw-r--r--gdb/testsuite/gdb.python/py-evthreads.c28
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;
}