1 #include <src/combined_source.c>
6 int __unbuffered_tpr_x;
7 int __unbuffered_tpr_y;
15 #ifndef FORCE_FAILURE_3
16 idx = srcu_read_lock(&ss);
20 __unbuffered_tpr_y = READ_ONCE(y);
22 srcu_read_unlock(&ss, idx);
23 idx = srcu_read_lock(&ss);
27 #ifndef FORCE_FAILURE_3
28 srcu_read_unlock(&ss, idx);
33 void *thread_update(void *arg)
36 #ifndef FORCE_FAILURE_2
37 synchronize_srcu(&ss);
40 __unbuffered_tpr_x = READ_ONCE(x);
45 void *thread_process_reader(void *arg)
52 int main(int argc, char *argv[])
57 if (pthread_create(&tu, NULL, thread_update, NULL))
59 if (pthread_create(&tpr, NULL, thread_process_reader, NULL))
61 if (pthread_join(tu, NULL))
63 if (pthread_join(tpr, NULL))
65 assert(__unbuffered_tpr_y != 0 || __unbuffered_tpr_x != 0);