| 98 | | which results in the following output (excerpted): |
| 99 | | |
| 100 | | {{{ |
| | 98 | which results in the following output: |
| | 99 | |
| | 100 | {{{ |
| | 101 | CIVL v1.18+ of 2018-12-28 -- http://vsl.cis.udel.edu/civl |
| | 102 | |
| | 103 | Violation 0 encountered at depth 21: |
| | 104 | CIVL execution violation (kind: DEADLOCK, certainty: PROVEABLE) |
| | 105 | at diningBad.cvl:20.32-32 |
| | 106 | $parfor(int i: 0..n-1) dine(i); |
| | 107 | ^ |
| | 108 | |
| | 109 | A deadlock is possible: |
| | 110 | Path condition: true |
| | 111 | Enabling predicate: false |
| | 112 | process p0 (id=0): false |
| | 113 | process p1 (id=1): false |
| | 114 | process p2 (id=2): false |
| | 115 | |
| | 116 | Call stacks: |
| | 117 | process 0: |
| | 118 | main at diningBad.cvl:20.32 ";" |
| | 119 | process 1: |
| | 120 | dine at diningBad.cvl:12.4-8 "$when" called from |
| | 121 | _par_proc0 at diningBad.cvl:20.25-28 "dine" |
| | 122 | process 2: |
| | 123 | dine at diningBad.cvl:12.4-8 "$when" called from |
| | 124 | _par_proc0 at diningBad.cvl:20.25-28 "dine" |
| | 125 | |
| | 126 | Logging new entry 0, writing trace to CIVLREP/diningBad_0.trace |
| | 127 | Terminating search after finding 1 violation. |
| | 128 | |
| | 129 | === Source files === |
| | 130 | diningBad.cvl (diningBad.cvl) |
| | 131 | |
| | 132 | |
| | 133 | === Command === |
| | 134 | civl verify -inputB=5 diningBad.cvl |
| | 135 | |
| | 136 | === Stats === |
| | 137 | time (s) : 1.43 |
| | 138 | memory (bytes) : 163053568 |
| | 139 | max process count : 3 |
| | 140 | states : 32 |
| | 141 | states saved : 26 |
| | 142 | state matches : 1 |
| | 143 | transitions : 30 |
| | 144 | trace steps : 21 |
| | 145 | valid calls : 106 |
| | 146 | provers : cvc4, z3 |
| | 147 | prover calls : 4 |