/* Basic shared-variable flag barrier. Run as follows: * civl verify -inputB=4 barrier.cvl */ #include $input int B = 4; // upper bound on number of threads $input int N; // number of threads $assume 1<=N && N<=B; $proc threads[N]; // the threads int lock = 0; // 0=available int in_barrier[N]; // am I inside the barrier? int num_in_barrier = 0; // how many are inside barrier? int counter = 0; // shared variable used to test barrier void init() { for (int i=0; i