]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/testsuite/gdb.python/py-evthreads.c
Update years in copyright notice for the GDB files.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.python / py-evthreads.c
index 1464ce6a48ec3f351d3ea0ce696ac1ceaacb45f4..83f0217353f77dd12f46a3ad82ca13a4a7f538cf 100644 (file)
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010, 2011 Free Software Foundation, Inc.
+   Copyright 2010-2013 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #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;
 }