source:
CIVL/examples/concurrency/locksBad10.cvl
| Last change on this file was ea777aa, checked in by , 3 years ago | |
|---|---|
|
|
| File size: 436 bytes | |
| Rev | Line | |
|---|---|---|
| [9fb69d3] | 1 | /* Commandline execution: |
| 2 | * civl verify locksBad10.cvl | |
| 3 | * */ | |
| [e6b02c8] | 4 | #include<civlc.cvh> |
| [f28d814] | 5 | |
| [b6c1fcb] | 6 | int x; |
| 7 | int y; | |
| 8 | ||
| 9 | void f(int n) { | |
| 10 | for (int i=0; i<n; i++) { | |
| [f28d814] | 11 | $when (x==0) x=1; |
| 12 | $when (y==0) y=1; | |
| [b6c1fcb] | 13 | y=0; |
| 14 | x=0; | |
| 15 | } | |
| 16 | } | |
| 17 | ||
| 18 | void g(int m) { | |
| 19 | for (int i=0; i<m; i++) { | |
| [f28d814] | 20 | $when (y==0) y=1; |
| 21 | $when (x==0) x=1; | |
| [b6c1fcb] | 22 | x=0; |
| 23 | y=0; | |
| 24 | } | |
| 25 | } | |
| 26 | ||
| 27 | void main() { | |
| 28 | x = 0; | |
| 29 | y = 0; | |
| [f28d814] | 30 | $proc p = $spawn f(10); |
| 31 | $proc q = $spawn g(10); | |
| [a82987f] | 32 | $wait(p); |
| 33 | $wait(q); | |
| [b6c1fcb] | 34 | } |
Note:
See TracBrowser
for help on using the repository browser.
