1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* A simple race - test symaddr */
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <pthread.h>
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <unistd.h>
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownstruct foo {
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	struct bar {
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown		int plop[22];
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown		char biff;
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	} poot[11];
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown};
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownstatic void *th(void *v)
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	struct foo *f = (struct foo *)v;
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	f->poot[5].plop[11]++;
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	return 0;
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main()
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	struct foo foo;
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	pthread_t a, b;
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	pthread_create(&a, NULL, th, &foo);
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	sleep(1);		/* force ordering */
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	pthread_create(&b, NULL, th, &foo);
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	pthread_join(a, NULL);
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	pthread_join(b, NULL);
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	return 0;
35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
36