+++ /dev/null
-#define NUMPROCS 2
-
-byte counter = 0;
-byte progress[NUMPROCS];
-
-proctype incrementer(byte me)
-{
- int temp;
-
- temp = counter;
- counter = temp + 1;
- progress[me] = 1;
-}
-
-init {
- int i = 0;
- int sum = 0;
-
- atomic {
- i = 0;
- do
- :: i < NUMPROCS ->
- progress[i] = 0;
- run incrementer(i);
- i++
- :: i >= NUMPROCS -> break
- od;
- }
- atomic {
- i = 0;
- sum = 0;
- do
- :: i < NUMPROCS ->
- sum = sum + progress[i];
- i++
- :: i >= NUMPROCS -> break
- od;
- assert(sum < NUMPROCS || counter == NUMPROCS)
- }
-}