source:
CIVL/examples/languageFeatures/atomicStatement.cvl@
52dff6c
| Last change on this file since 52dff6c was d410676, checked in by , 13 years ago | |
|---|---|
|
|
| File size: 653 bytes | |
| Rev | Line | |
|---|---|---|
| [d410676] | 1 | int n = 3; |
| [9705dfd] | 2 | void foo(){ |
| 3 | int k = n; | |
| 4 | k = k + 1; | |
| 5 | } | |
| 6 | ||
| 7 | void main(){ | |
| 8 | int i = 0; | |
| [d410676] | 9 | int x = 3; |
| [9705dfd] | 10 | |
| 11 | $atomic{ | |
| [d410676] | 12 | |
| [9705dfd] | 13 | if(i < 0) |
| 14 | i = 1; | |
| 15 | else | |
| 16 | i = 2; | |
| 17 | } | |
| 18 | ||
| [d410676] | 19 | $assert i == 2; |
| 20 | ||
| [9705dfd] | 21 | $atomic |
| [d410676] | 22 | if(i > 0) |
| [9705dfd] | 23 | i = 1; |
| 24 | else | |
| 25 | i = 2; | |
| 26 | ||
| [d410676] | 27 | $assert i == 1; |
| [9705dfd] | 28 | |
| 29 | $atomic{ | |
| [d410676] | 30 | i = 2; |
| [9705dfd] | 31 | switch(i){ |
| 32 | case 1: i = 2; | |
| [d410676] | 33 | case 2: i = 3;break; |
| [9705dfd] | 34 | default: i = 5; |
| 35 | } | |
| 36 | } | |
| 37 | ||
| [d410676] | 38 | $assert i == 3; |
| [9705dfd] | 39 | |
| 40 | $atomic{ | |
| 41 | i = 0; | |
| 42 | for(int j = 0; j < 10; j++){ | |
| 43 | i += j; | |
| 44 | } | |
| 45 | } | |
| 46 | ||
| 47 | $assert i == 45; | |
| 48 | ||
| [125b6b5] | 49 | $atomic{ |
| 50 | for(int m = 0; m < 5; m++){ | |
| 51 | $spawn foo(); | |
| 52 | } | |
| 53 | } | |
| [9705dfd] | 54 | |
| 55 | //nested atomic and non-pure-local atomic block | |
| 56 | $atomic{ | |
| [d410676] | 57 | n = 0; |
| [9705dfd] | 58 | n += 1; |
| 59 | $atomic{ | |
| 60 | i+=2; | |
| 61 | i += 3; } | |
| 62 | n += 9; | |
| 63 | } | |
| 64 | ||
| 65 | $assert n == 10; | |
| 66 | } |
Note:
See TracBrowser
for help on using the repository browser.
