8 #define ITER_FLAGS for (int i = 0; i < NUM_FLAGS; i++)
10 Flag flags[NUM_FLAGS];
12 void *start_thread(__attribute__((unused)) void *val)
15 printf("waiting for flag %d\n", i);
24 ITER_FLAGS if (! flags[i].set)
32 printf("------------\n");
33 printf("Testing Flag\n");
34 printf("------------\n");
37 ITER_FLAGS flag_ini(&flags[i]);
40 pthread_create(&thread, NULL, &start_thread, NULL);
42 while (! is_finished()) {
43 int i = rand() % NUM_FLAGS;
45 printf("setting flag %d\n", i);
48 nanosleep(&(struct timespec) {
54 pthread_join(thread, NULL);
56 ITER_FLAGS flag_dst(&flags[i]);