Add 469782 to NEWS
[valgrind.git] / helgrind / tests / hg04_race.c
blob760caf88601d7dcc87c6271d324416caba3e6d40
1 /* A simple race */
3 #include <pthread.h>
4 #include <unistd.h>
6 static int shared;
8 __attribute__((noinline))
9 static void th10(void)
11 shared++;
14 __attribute__((noinline))
15 static void th9(void)
17 th10();
20 __attribute__((noinline))
21 static void th8(void)
23 th9();
26 __attribute__((noinline))
27 static void th7(void)
29 th8();
32 __attribute__((noinline))
33 static void th6(void)
35 th7();
38 __attribute__((noinline))
39 static void th5(void)
41 th6();
44 __attribute__((noinline))
45 static void th4(void)
47 th5();
50 __attribute__((noinline))
51 static void th3(void)
53 th4();
56 __attribute__((noinline))
57 static void th2(void)
59 th3();
63 __attribute__((noinline))
64 static void th1(void)
66 th2();
69 static void *th(void *v)
71 th1();
73 return 0;
76 int main()
78 pthread_t a, b;
80 pthread_create(&a, NULL, th, NULL);
81 sleep(1); /* force ordering */
82 pthread_create(&b, NULL, th, NULL);
84 pthread_join(a, NULL);
85 pthread_join(b, NULL);
87 return 0;