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